Identity Server4配合oidc-client-js登出后不跳转post_logout_redirect_uri问题求助
排查点汇总
- 校验post_logout_redirect_uri完全匹配
首先确认代码中process.env.REACT_APP_LOGOFF_REDIRECT_URL的值,和Identity Server后台配置的Post Logout Redirect Uris完全一致:包括协议头(http/https)、域名、端口、路径、末尾是否带斜杠,Identity Server对该字段执行严格的完全匹配规则,任意字符不一致都会导致重定向被拦截。 - 确认id_token_hint有效传递
在调用signoutRedirect前打印this.user?.id_token的值,确认该字段不为空。Identity Server需要通过有效id_token关联对应的客户端配置,才能匹配到允许的登出回调地址,如果id_token传递失败会直接停留在登出页面,不会触发自动跳转。 - 检查Identity Server登出逻辑配置
你当前停留的是Identity Server自带的登出页面,部分二次开发的Identity Server会关闭登出后的自动跳转逻辑,需要手动点击页面上的返回按钮才会跳转。可以检查Identity Server的AccountController中Logout方法的实现,确认是否开启了验证通过后自动跳转回post_logout_redirect_uri的逻辑。 - 校验登出请求参数
可以通过浏览器网络面板查看跳转到Identity Server登出地址的请求参数,确认post_logout_redirect_uri和id_token_hint两个参数都被正确携带,没有拼写错误或者值为空的情况。 - 检查UserManager初始化配置
如果在初始化UserManager实例时已经配置过post_logout_redirect_uri,调用signoutRedirect时可以省略该参数,避免两边配置不一致产生冲突。
内容的提问来源于stack exchange,提问作者Wreeecks
相关产品推荐
相关产品推荐

