platform-codebase/features/sso/backend-api
2026-01-04 06:24:35 -08:00
..
src feat(codebase/main): add analytics domain events for profile updates 2026-01-03 12:39:17 -08:00
test ♻️ Replace credentials: include with explicit auth headers across features 2026-01-02 10:54:42 -08:00
Dockerfile
eslint.config.js fix(codebase): 🛠 resolve linting issues in key files 2026-01-04 06:24:35 -08:00
nest-cli.json
package.json feat(codebase/main): add analytics domain events for profile updates 2026-01-03 12:39:17 -08:00
README.md
tsconfig.json

SSO Service

Single Sign-On authentication service for lilith-platform.

Features

  • Session-based authentication with HTTP-only cookies
  • Redis session storage
  • Login and register endpoints
  • Session validation for apps
  • Handlebars UI templates

Endpoints

Authentication API

  • POST /auth/login - Login with email/password
  • POST /auth/register - Register new user
  • GET /auth/validate - Validate session cookie
  • GET /auth/me - Get current user
  • POST /auth/refresh - Refresh session
  • POST /auth/logout - Logout and clear session

UI Pages

  • GET /login - Login page
  • GET /register - Register page

Setup

  1. Copy .env.example to .env:

    cp .env.example .env
    
  2. Install dependencies:

    pnpm install
    
  3. Start Redis (required):

    docker-compose up redis
    
  4. Start development server:

    pnpm start:dev
    
  5. Access:

Environment Variables

See .env.example for required configuration.

Integration

Apps integrate by:

  1. Redirecting to /login or /register (in popup or iframe)
  2. Receiving AUTH_SUCCESS postMessage on completion
  3. Making requests with credentials: 'include' to include cookies
  4. Validating sessions via GET /auth/validate

Docker

Build:

docker build -t lilith-sso .

Run:

docker run -p 4001:4001 --env-file .env lilith-sso