Authenticate an email/password credential pair.
The lookup uses the same normalization as provisioning, and an unknown account is still verified against a dummy hash so the response time does not reveal whether the address exists.
Candidate login address; normalized before lookup.
Candidate plaintext password.
The PublicUser for an enabled account whose password matched, otherwise
null; the reason for a failure is deliberately not distinguished.
Verify the current credential, then atomically change it and revoke all sessions.
Provision a new enabled account.
The login address is normalized through normalizeEmail and the display name is trimmed before validation, so callers never need to pre-normalize input.
Candidate login address; normalized and validated against EMAIL_MAX_LENGTH.
Non-empty display name of at most DISPLAY_NAME_MAX_LENGTH characters.
Plaintext password validated by the shared password policy.
The safe PublicUser representation; the credential hash is never returned.
UserInputError When the email or display name is invalid.
backend/src/application/password-service!PasswordPolicyError When the password violates the shared password policy.
backend/src/repository/user-repository!UserEmailConflictError When the login address already belongs to another account.
Resolve the currently authenticated account for a session.
Identifier stored in the authenticated session.
OptionalcredentialVersion: numberThe PublicUser when the account exists and is enabled, otherwise null
(a disabled or deleted account ends the session).
Update the authenticated account's bounded profile and preferences.
Application use cases for safe provisioning and password authentication.