v1auth 上下文
auth 上下文总览
v1 auth 上下文(基础路径 /v1/auth,受众 auth)的接口组一览、认证方式与提权规则。
auth 上下文管的是「你是谁、你现在在哪条会话里」:登录与注册、验证挑战、会话、凭据管理、用户信息。它的令牌受众是 auth。
基础路径:{origin}/v1/auth。每个接口组单独成页,见下表。
接口组
| 接口组 | 端点 | 提权要求 | 页面 |
|---|---|---|---|
| 登录与注册 | POST /login、POST /register | 无(Turnstile) | 登录与注册 |
| 验证挑战 | POST /verify/email、/verify/email/confirm、/verify/password、/verify/passkey、/verify/passkey/confirm、/verify/authenticator、/verify/recovery-code | 无(凭流程令牌) | 验证挑战 |
| 令牌 | POST /token、POST /token/refresh、POST /token/revoke | 无 | 令牌 |
| 会话 | GET /session、GET /session/list、DELETE /session/others、DELETE /session/:sid | 写操作需 max_age=300 | 会话 |
| 用户信息 | GET /userinfo | 资源令牌,非会话 | 用户信息 |
| 身份断言 | POST /assertion | 无(会话令牌) | 身份断言 |
| 资料 | PATCH /profile、PUT /username、GET /username/available | 改用户名需 max_age=300 | 资料 |
| 凭据管理 | /credentials、/providers、/credentials/providers 及各类凭据端点 | 新增与删除需 max_age=300 | 凭据管理 |
| 会话提权 | POST /elevation、POST /elevation/complete | 入口本身不提权 | 会话提权 |
| 找回密码 | POST /password-reset、POST /password-reset/complete | 无(匿名可用) | 找回密码 |
| 第三方登录回调 | POST /provider/:provider/callback | 无 | 第三方登录回调 |
| 管理回流 | POST /manage/context | 无(会话令牌) | 管理回流 |
| 安全记录 | GET /audit-logs | 无(会话令牌) | 安全记录 |
第三方客户端只会用到一处
第三方接入方在本上下文里只有 GET /userinfo 一个端点可用,且必须持有 auth 受众的资源令牌。
换令牌、刷新令牌、撤销令牌都不在这里,而在 oauth 上下文 的 token。第一方账户页与同意页会用到其余全部端点。
认证方式矩阵
| 端点类别 | 凭证 |
|---|---|
| 登录、注册、验证挑战、找回密码、第三方回调 | 无令牌;靠请求上下文、Turnstile 与限流 |
| 会话、资料、凭据、管理回流、安全记录 | 会话令牌:Authorization: Bearer <access_token>,受众 auth |
userinfo | 资源令牌,受众 auth,scope 至少含 openid / profile / email 之一 |
| 提权流程第二步 | 流程令牌(JWE),放在 Bearer 位置 |
会话令牌与资源令牌不能互换
会话令牌由 /v1/auth/token 签发,不绑定任何 client_id;资源令牌由 /v1/oauth/token 签发,携带 aud 与 scope。
用资源令牌调会话端点会被拒,反之亦然。
提权(step-up)
破坏性操作要求「最近 5 分钟内完成过一次身份验证」,对应 RFC 9470 的 max_age。未满足时返回 401 并带 WWW-Authenticate 挑战,客户端据此走 会话提权。
错误形态
资源类接口统一返回 { success, code, message, details?, timestamp }。401 的三种成因(受众不符、scope 不足、令牌无效)如何区分,见错误码。