v1oauth 上下文
撤销
POST /v1/oauth/revoke:RFC 7009 令牌撤销,响应为空且禁止缓存。
POST {issuer}/revoke 按 RFC 7009 撤销一枚令牌。请求体为 application/x-www-form-urlencoded。
请求
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
token | string | ✅ | 要撤销的令牌 |
token_type_hint | string | 可选 | access_token 或 refresh_token,仅作为查找提示 |
client_id | string | ✅(none 方式) | 公开客户端必带 |
客户端必须先完成客户端认证,与 token 端点同一套方式。
curl -X POST 'https://id.example.com/v1/oauth/revoke' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-u "$CLIENT_ID:$CLIENT_SECRET" \
-d "token=$ACCESS_TOKEN" \
-d 'token_type_hint=access_token'响应
200,响应体为空。
空响应也必须禁止缓存
RFC 7009 不强制 Cache-Control,但「空响应 = 可缓存」是代理的默认假设。
若中间层缓存了这次 200,下一个撤销另一枚令牌的请求会拿到同一个「成功」,而真正的撤销从未发生——客户端以为自己下线了,令牌却还活着。
行为约定
| 约定 | 说明 |
|---|---|
| 幂等 | 撤销一枚已失效的令牌同样返回 200 |
| 不区分结果 | 不告诉调用方这枚令牌是否本来就无效,避免成为探测工具 |
| 刷新令牌 | 撤销刷新令牌会连带作废它签出的访问令牌 |