feat: enforce email as primary user identity in SaaS mode
All users in SaaS mode must have an email address. The bootstrap creates the admin user with primaryEmail set to SAAS_ADMIN_EMAIL (defaults to <SAAS_ADMIN_USER>@<PUBLIC_HOST>). This prevents the admin from being locked out when self-service registration (which requires email) is enabled via the Email Connector UI. Documentation updated across all CLAUDE.md files, .env.example, user-manual.md, and installer submodule (README, .env.example, compose). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
# Auth & Security Config
|
||||
|
||||
## User identity
|
||||
|
||||
**Email is the primary user identity** in SaaS mode. All users must have an email address — Logto enforces this via `signUp.identifiers: ["email"]` when registration is enabled. The bootstrap creates the admin user with `primaryEmail` set to `SAAS_ADMIN_EMAIL` (defaults to `<SAAS_ADMIN_USER>@<PUBLIC_HOST>`). Self-service registration requires email verification via a configured email connector (vendor UI at `/vendor/email`).
|
||||
|
||||
## Auth enforcement
|
||||
|
||||
- All API endpoints enforce OAuth2 scopes via `@PreAuthorize("hasAuthority('SCOPE_xxx')")` annotations
|
||||
|
||||
Reference in New Issue
Block a user