eetr-auth
Reference

Endpoints

The OAuth/OIDC, user, and admin HTTP endpoints exposed by the auth server.

All paths are relative to your issuer base URL (e.g. https://auth.yourdomain.com).

Discovery & keys

MethodPathPurpose
GET/.well-known/openid-configurationOpenID Connect Discovery 1.0 metadata
GET/.well-known/oauth-authorization-serverRFC 8414 OAuth server metadata
GET<JWKS_CDN_BASE_URL>/jwks.jsonPublic JWKS (served from R2/CDN, not the Worker)

OAuth 2.1 / OIDC

MethodPathPurpose
GET/api/authorizeAuthorization endpoint (Authorization Code + PKCE)
POST/api/authorize/completeCompletes the authorization step
POST/api/tokenToken endpoint (all grant types)
POST/api/token/validateToken introspection (optional audience binding)
GET/api/userinfoOIDC UserInfo (requires openid scope)
POST/api/registerDynamic Client Registration (RFC 7591)

Authentication

MethodPathPurpose
/api/auth/[...nextauth]Auth.js (NextAuth) session/sign-in routes
POST/api/auth/passkey/challengeBegin a passkey sign-in ceremony
POST/api/auth/passkey/verifyComplete a passkey sign-in ceremony

Users (self-service)

MethodPathPurpose
GET/POST/api/usersUser self-service
POST/api/users/avatarAvatar upload (R2 via Images API)
POST/api/users/email-verification/requestRequest an email-verification code
POST/api/users/email-verification/verifyVerify an email-verification code
GET/POST/api/users/passkeyList / manage the user's passkeys
GET/api/users/passkey/hasWhether the user has a registered passkey
POST/api/users/passkey/registerRegister a passkey
POST/api/users/passkey/challengePasskey challenge (self-service)
POST/api/users/passkey/verifyVerify a passkey (self-service)
DELETE/api/users/passkey/[id]Remove a passkey (server-side record only)

Admin (bearer-protected)

MethodPathPurpose
GET/POST/api/admin/usersList / create users
GET/PATCH/DELETE/api/admin/users/[id]Read / update / delete a user
POST/api/admin/site-logoUpload the site logo

Protect the admin endpoints

/api/admin/* is bearer-token protected in-app, but should additionally sit behind an IP allowlist or Cloudflare Access — see the WAF guide.

Utility

MethodPathPurpose
GET/api/healthHealth check → { "status": "ok" }
GET/api/docsInteractive API reference (Scalar)
GET/api/openapiOpenAPI document

On this page