Contents
OAuth2 authorization
OAuth2 authorization endpoint for the Authorization Code Flow with PKCE.
Use this to:
- Show login/register UI
- Handle seamless sign-in
- Redirect with authorization code
Flow:
- Client →
/oauth/authorize(this endpoint) - User logs in → redirect to
redirect_uriwithcode - Client →
/oauth/token→ access token
Tip: Use
prompt=none+ seamless sign-in for silent auth.
Responses
Request device and user codes for the device authorization flow (RFC 8628). The device displays the user_code and directs the user to verification_uri. More
Body application/json
Responses
Introspect an access token or refresh token.
Since refresh tokens are opaque, they can only be introspected with this endpoint.
This endpoint is primarily used for:
- Building admin dashboards (“Active Sessions” page)
- Implementing “Sign out everywhere” / per-device revocation
- Auditing active tokens for compliance
- Supporting legacy or gateway-based architectures
Ideally, resource servers should validate access tokens locally using the public JWKS endpoint (/.well-known/jwks.json) instead of this endpoint.
Clients with client_secret configured must provide client_secret. Client ID is optional when resolving by hostname.
Body application/json
Responses
Revoke an OAuth2 token (RFC 7009). Use in logout flows to invalidate tokens. Refresh tokens are revoked immediately; access tokens (JWTs) cannot be server-side invalidated but are acknowledged. Per RFC 7009, always returns 200 OK. More
Body application/json
Responses
POST endpoint to get an access token.
Supports multiple OAuth2 types:
| Grant Type | Use Case |
|---|---|
authorization_code | Authorization code flow (PKCE). Most secure and common. |
client_credentials | Machine-to-machine auth using shared secret / API key. No user. Meant for IoT, sensors, CI/CD or infrastructure. |
urn:ietf:params:oauth:grant-type:device_code | Device Code Exchange. Device presents a code, user enters code in browser or phone. |
urn:ietf:params:oauth:grant-type:jwt-bearer | JWT Exchange. Public/private asymmetric shared secrets. |
urn:ietf:params:oauth:grant-type:saml2-bearer | SAML2. Common for Enterprise SSO. |
urn:ietf:params:oauth:grant-type:token-exchange | Use current access_token to get more specific token to access resources of a particular membership or different audience. |
refresh_token | Refresh an access token, same as /oauth/refresh |
password | Legacy username/password (disabled by default) |
Security:
- Public clients →
client_secretoptional - Confidential clients →
client_secretrequired client_idis optional when resolving by hostname
See: RFC 6749
Body application/json
Responses
Returns claims about the authenticated user.
This is a standard OpenID Connect UserInfo endpoint (RFC 7662) that allows clients to retrieve user information after authentication using a valid access token.
The claims returned depend on the scopes granted in the access token:
openid: Required for OIDC, returnssubprofile: Returns name, given_name, family_name, picture, locale, zoneinfo, updated_atemail: Returns email, email_verified