Skip to Content
MuoCeon Docs
v1auth context

auth context overview

Endpoint groups, authentication and step-up rules of the v1 auth context (base path /v1/auth, audience auth).

The auth context is about "who you are and which session you are in": sign-in and registration, verification challenges, sessions, credential management, user info. Its token audience is auth.

Base path: {origin}/v1/auth. Each group has its own page; see the table below.

Endpoint groups

GroupEndpointsStep-upPage
Sign-in and registrationPOST /login, POST /registerNone (Turnstile)Sign-in and registration
Verification challengesPOST /verify/email, /verify/email/confirm, /verify/password, /verify/passkey, /verify/passkey/confirm, /verify/authenticator, /verify/recovery-codeNone (flow token)Verification challenges
TokensPOST /token, POST /token/refresh, POST /token/revokeNoneTokens
SessionsGET /session, GET /session/list, DELETE /session/others, DELETE /session/:sidWrites need max_age=300Sessions
User infoGET /userinfoResource token, not a sessionUser info
Identity assertionPOST /assertionNone (session token)Identity assertion
ProfilePATCH /profile, PUT /username, GET /username/availableUsername change needs max_age=300Profile
Credential management/credentials, /providers, /credentials/providers and the per-type endpointsAdd and remove need max_age=300Credential management
Session elevationPOST /elevation, POST /elevation/completeThe entry point itself is not elevatedSession elevation
Password resetPOST /password-reset, POST /password-reset/completeNone (anonymous)Password reset
Third-party callbackPOST /provider/:provider/callbackNoneThird-party callback
Management returnPOST /manage/contextNone (session token)Management return
AuditGET /audit-logsNone (session token)Audit

Third parties use exactly one endpoint

In this context a third-party integrator has a single endpoint: GET /userinfo, and it requires an auth-audience resource token.

Token exchange, refresh and revocation are not here; they live in token under the oauth context. Everything else serves the first-party account UI and the consent UI.

Authentication matrix

Endpoint classCredential
Sign-in, registration, verification challenges, password reset, third-party callbackNo token; request context, Turnstile and rate limits
Sessions, profile, credentials, management return, auditSession token: Authorization: Bearer <access_token>, audience auth
userinfoResource token, audience auth, scope with at least one of openid / profile / email
Elevation step twoFlow token (JWE) in the Bearer header

Session tokens and resource tokens are not interchangeable

A session token is issued by /v1/auth/token and is bound to no client_id. A resource token is issued by /v1/oauth/token and carries aud and scope. Using a resource token on session endpoints is rejected, and the reverse is true as well.

Step-up

Destructive operations require "an identity verification completed within the last 5 minutes", i.e. RFC 9470 max_age. When that is not satisfied the response is 401 with a WWW-Authenticate challenge, and the client runs Session elevation.

Error shape

Resource endpoints return the unified envelope { success, code, message, details?, timestamp }. How to tell the three causes of 401 apart (wrong audience, insufficient scope, invalid token) is in Error codes.

On this page