Spring Authorization Server 1.1.0中OpenID Connect 1.0登出端点使用问题
1. 是否支持OIDC 1.0登出端点
Spring Authorization Server 1.1.0完全支持OpenID Connect 1.0的登出端点(/connect/logout),该端点是框架默认提供的标准OIDC登出实现。
2. id_token_hint 参数说明
id_token_hint是OIDC登出流程中的必填参数,作用如下:
- 向授权服务器提供用户当前有效的ID Token,帮助服务器快速定位用户会话信息
- 避免服务器因无法识别用户身份而拒绝登出请求
- 参数值为用户登录时获取到的ID Token字符串
你遇到的invalid_request错误,核心原因就是请求/connect/logout时未携带该参数,或参数值无效(比如使用了已过期的ID Token)。
3. 正确的登出请求示例
发起登出请求时需携带关键参数(以GET请求为例):
id_token_hint: 用户有效的ID Tokenpost_logout_redirect_uri: 登出成功后跳转的前端地址(需提前在客户端配置中注册)- 可选参数
state: 用于防范CSRF攻击,登出后会原样带回该值
请求格式示例:
GET /connect/logout?id_token_hint=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...&post_logout_redirect_uri=https://your-app.com/logout-success&state=abc123
4. 优质参考资源
官方文档的登出章节是最权威的参考依据,另外可参考框架自带的示例项目,重点关注客户端如何获取ID Token并传递给登出端点,以及授权服务器的客户端配置(需确保post_logout_redirect_uri已正确配置)。
内容的提问来源于stack exchange,提问作者Willy De Keyser
相关产品推荐
相关产品推荐

