POST /oauth/logout

OIDC RP-Initiated Logout 1.0。id_token_hint 必须为本服务 RSA 验签有效(含 iss 校验)。无 hint 四支分流:已认证会话(Bearer)→ 200 JSON {logged_out, location};无会话浏览器(Accept 含 text/html)→ 302 确认页;无会话机器流 → 401。post_logout_redirect_uri 仅在命中客户端注册白名单时精确匹配(302 回跳或 location 出),否则忽略/省略。

OAuth None application/json

请求参数

名称位置类型必填默认值示例约束描述
id_token_hint query string 否 ID Token 提示(须为本服务签发且未过期,验签 + iss 校验)
post_logout_redirect_uri query string 否 登出后重定向地址(精确匹配客户端注册 URI 白名单,否则忽略)
state query string 否 状态参数,随重定向/location 原样返回(URL 转义)
client_id query string 否 无 id_token_hint 时的客户端标识(白名单校验;确认页透传)

响应

状态描述Schema
200登出成功(无 hint 已认证会话:data={logged_out, location?};hint 无回跳:message=logged_out)service-oauth/internal/handler/dto.LogoutJSONResponse
302重定向(hint 命中注册 URI;或无会话浏览器 → 确认页)service-core/base/dto.SimpleResponse
400invalid_request:id_token_hint 无效(验签/iss/过期/缺 sub)service-oauth/internal/handler/dto.OAuthErrorResponse
401invalid_request:无有效 id_token_hint 且无已认证会话(机器流)service-oauth/internal/handler/dto.OAuthErrorResponse
403access_denied:id_token_hint 主体与当前会话用户不一致service-oauth/internal/handler/dto.OAuthErrorResponse

引用的 Schema

service-core/base/dto.SimpleResponse

字段类型必填示例约束描述
code integer 否
message string 否
timestamp string 否

service-oauth/internal/handler/dto.LogoutJSONResponse

字段类型必填示例约束描述
code integer 否
data service-oauth/internal/handler/dto.LogoutResult 否
message string 否
timestamp string 否

service-oauth/internal/handler/dto.LogoutResult

字段类型必填示例约束描述
location string 否 https://app.example.com/after-logout
logged_out boolean 否 True

service-oauth/internal/handler/dto.OAuthErrorResponse

OAuth标准错误响应

字段类型必填示例约束描述
error string 否 invalid_request 错误码
error_description string 否 Missing required parameter 错误描述
error_uri string 否 https://docs.example.com/errors 错误URI
i18n_key string 否 error.oauth_invalid_request I18nKey 本地化键(AUTH-46①/U416):协议字段 error/error_description 保持 RFC 6749 §5.2 原样, 本字段是**附加**信息(omitempty;未知错误码不填),供前端/AI 客户端按键确定性渲染文案, 无需解析英文原文。仅出现在 JSON 错误体,不写入 302 错误重定向的查询串。
state string 否 state-123 状态