跳到正文
MuoCeon 文档中心
v1auth 上下文

会话提权

POST /v1/auth/elevation 与 /elevation/complete:两段式的近期认证(RFC 9470)。

提权是「在现有会话内证明此刻是本人」,用于满足破坏性操作的 max_age 要求。它与重新登录的区别在于:会话不变,只把这条会话的认证时刻推到当下。

端点

方法路径凭证说明
POST/v1/auth/elevation会话令牌起流程,返回流程令牌与可用方式
POST/v1/auth/elevation/complete流程令牌(JWE)收流程,重签访问令牌

第一步:起流程

参数类型必填说明
acr_valuesstring可选目标强度,多个值取最高的一档
{
  "success": true,
  "flow_token": "eyJ...",
  "required_acr": "urn:muoceon:acr:aal2",
  "available_methods": [
    { "type": "passkey", "remaining": 1 },
    { "type": "authenticator", "remaining": 1 }
  ]
}

required_acr 是本次的目标等级,available_methods 是这个账号当前可用的验证方式。

第一步不要求提权

它本身就是提权的入口。若再要求一次近期认证,用户会陷入「要提权得先提权」的死循环。

中间步骤

用返回的 flow_token 走 验证挑战 里的 /verify/*,每一步都会换回新的流程令牌。

第二步:收流程

Bearer 位置放流程令牌(不是会话令牌),无请求体。

{
  "success": true,
  "access_token": "eyJ...",
  "token_type": "Bearer",
  "expires_in": 900,
  "acr": "urn:muoceon:acr:aal2",
  "auth_time": "2026-11-14T09:02:41.000Z"
}
结果说明
达标会话 auth_time 推到当下,重签访问令牌;刷新令牌不轮换
未达标返回 401 并带 RFC 9470 的 WWW-Authenticate 挑战,流程令牌仍然有效,可换更强的方式重试

典型用法

  1. 调某个破坏性端点,收到 401 + WWW-Authenticate;
  2. 调 POST /elevation,按 available_methods 渲染验证界面;
  3. 完成验证挑战后调 /elevation/complete;
  4. 用新拿到的访问令牌重放原请求。

相关

本页目录