Changelog
Modules

Identity management

Account lifecycle endpoints — register, confirm, forgot/reset password, manage info and 2FA.

Maps account lifecycle endpoints. Pair with a sign-in module (cookie, bearer, or JWT).

DI

Registered by the facade (AddAuthEndpoints) or manually via Identity API endpoints + EF stores + token providers.

Map

app.MapGroup("/identity").MapIdentityManagementApi<AppUser>();
// Optional: unique confirm email name when mapping twice
// .MapIdentityManagementApi<AppUser>(confirmEmailEndpointName: "BearerConfirmEmail");

Routes

Relative to the group prefix (facade default /identity):

MethodPathNotes
POST/registerCreates user; duplicate email returns 200 OK (no enumeration). Rate-limited.
GET/confirmEmailConfirms email via link token
POST/resendConfirmationEmailAuth + CSRF + rate limit
POST/forgotPasswordRate-limited
POST/resetPasswordRate-limited
GET/manage/authMethodsReAuth methods (see ReAuth)
POST/confirmIdentityStep-up proof
POST/confirmIdentity/passkeyOptionsPasskey options for step-up
GET/manage/2fa2FA status
POST/manage/2faEnable/disable 2FA — CSRF + ReAuth
GET/manage/infoCurrent user info
POST/manage/infoUpdate info — CSRF + ReAuth

Authorization

Management authorize attribute accepts registered schemes among: application cookie, Identity bearer, and JWT bearer.

Sensitive manage mutations require antiforgery and ReAuth.

Gotchas

  • Map management once in production (see Requirements).
  • Production requires a real IEmailSender<TUser> for confirmation and reset emails.
  • Register alone does not sign the user in — use a sign-in module.