Replace Zitadel's built-in login v1 with a fully custom SvelteKit-based login experience using Zitadel Session API v2. Keeps the existing OIDC authorization code flow (Auth.js handles token exchange) while providing branded login, signup, password reset, and TOTP pages. - Enable Login V2 in docker-compose, assign IAM_LOGIN_CLIENT role in setup script - Add server-only Zitadel API client ($lib/server/zitadel.ts) with session, user, and auth-request management functions - Create reusable auth UI components (AuthCard, FormField, FormError, LoadingButton) - Rewrite login page with email/password form and TOTP second factor support - Add signup page with auto-login after registration - Add password reset flow (request + verify pages) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
20 lines
679 B
Text
20 lines
679 B
Text
# Zitadel OIDC Configuration
|
|
# For local dev, run: ./docker/setup-zitadel.sh (auto-generates this file)
|
|
AUTH_ZITADEL_ISSUER=http://localhost:8080
|
|
AUTH_ZITADEL_CLIENT_ID=your-client-id
|
|
AUTH_ZITADEL_CLIENT_SECRET=your-client-secret
|
|
|
|
# Auth.js secret (generate with: openssl rand -base64 32)
|
|
AUTH_SECRET=your-auth-secret
|
|
|
|
# Backend API URL
|
|
PUBLIC_API_URL=http://localhost:3001
|
|
|
|
# Zitadel account management URL (for password/MFA changes)
|
|
PUBLIC_ZITADEL_ACCOUNT_URL=http://localhost:8080/ui/console
|
|
|
|
# Zitadel service user PAT (for Session API v2 calls from server-side)
|
|
ZITADEL_SERVICE_USER_TOKEN=your-service-user-token
|
|
|
|
# App URL (for OIDC redirects)
|
|
ORIGIN=http://localhost:5173
|