v1oauth 上下文
换令牌
POST /v1/oauth/token:三种授权类型、客户端认证方式与响应字段。
POST {issuer}/token,请求体为 application/x-www-form-urlencoded,响应带 Cache-Control: no-store。
本页只列接口契约;三种授权类型的完整参数与示例见换令牌与刷新。
客户端认证
| 方式 | 适用 | 写法 |
|---|---|---|
client_secret_basic | 机密客户端(推荐) | Authorization: Basic base64(client_id:client_secret) |
client_secret_post | 机密客户端 | 表单里带 client_id 与 client_secret |
none | 公开客户端 | 表单里只带 client_id |
授权类型
grant_type | 场景 | 关键参数 |
|---|---|---|
authorization_code | 用户授权后换令牌 | code、redirect_uri、code_verifier |
refresh_token | 刷新 | refresh_token,scope 只能收窄 |
client_credentials | 服务端到服务端(machine 客户端) | scope |
响应
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "eyJ...",
"refresh_token": "eyJ...",
"scope": "openid profile email offline_access",
"id_token": "eyJ..."
}| 字段 | 说明 |
|---|---|
access_token | 访问令牌 |
refresh_token | 仅当 scope 含 offline_access 时返回 |
id_token | 请求 openid 时返回 |
scope | 实际授予的 scope,可能已被裁剪 |
expires_in | web_server 为 3600 秒,公开客户端平台为 1800 秒 |
规则
| 规则 | 说明 |
|---|---|
| 禁止缓存 | 响应固定带 no-store |
| 刷新即轮换 | 旧刷新令牌立即失效,客户端必须用新值覆盖 |
| 不解析刷新令牌 | 它是签名 JWT,客户端不应依赖其内部结构 |
| 刷新不恢复授权详情 | authorization_details 只在首次授权时成立 |
| 限流 | 按 IP 计,超限返回 429 而不是 500 |