AWS Cognito登出时redirect_mismatch问题排查咨询
解决Cognito登出端点
redirect_mismatch错误的核心关键点 你遇到的问题本质是混淆了Cognito中「回调URL(Callback URLs)」和「登出URL(Sign out URLs)」的独立用途——这两个配置是完全分开的,不能互相替代。
为什么只有/signin-oidc能正常工作?
大概率是你只把http://localhost:63882/signin-oidc同时加到了回调URL和登出URL的白名单里,而http://localhost:63882/Protected仅在回调URL中配置,没添加到登出URL的专属列表中。
Cognito对不同端点的URL校验逻辑是分开的:
- 回调URL:仅用于授权流程(比如
authorize端点)完成后的跳转 - 登出URL:专门服务于
logout端点的跳转,必须单独配置
快速修复步骤
- 登录AWS Cognito控制台,找到你的目标用户池
- 进入「App integration」→「App client settings」页面
- 向下滚动到「Sign out URLs」区域
- 把
http://localhost:63882/Protected(或你需要的其他登出跳转URL)添加到这个列表,保存配置 - 等待1-2分钟让配置生效,再重新测试登出请求
额外优化建议
- 登出请求里的
response_type=code参数是多余的,logout端点不需要这个参数,建议移除以避免混淆。简化后的请求格式如下:https://MY_POOL_NAME.auth.eu-west-2.amazoncognito.com/logout?client_id=MY_CLIENT_CODE&redirect_uri=http://localhost:63882/Protected&state=STATE&scope=openid+profile - 如果有多个需要跳转的URL,可以使用通配符(比如
http://localhost:63882/*)简化配置,但要注意安全边界,避免过度开放
内容的提问来源于stack exchange,提问作者Britonk
相关产品推荐
相关产品推荐

