You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cognito对接Cloudfront+S3静态网站失败,报redirect_mismatch错误

解决Cognito与CloudFront静态网站的redirect_mismatch错误

以下是针对你遇到问题的排查和解决步骤:

1. 确认Cognito应用客户端的回调/登出URL完全匹配

Cognito对回调URL的匹配是严格精确匹配,包括协议、域名、路径和末尾斜杠:

  • 登录AWS控制台,进入Cognito用户池,找到对应的应用客户端
  • 检查**回调URL(Callback URLs)和登出URL(Sign out URLs)**是否添加了https://<cloudfront_url>.cloudfront.net/(必须带末尾斜杠,和你代码中的配置完全一致)
  • 注意:如果有多个环境URL,要确保CloudFront的URL已经添加到列表中,不要遗漏

2. 检查应用客户端的OAuth授权流配置

你使用的是response_type=code(授权码流),需要确认:

  • 在Cognito应用客户端的OAuth 2.0设置中,勾选了授权码授予(Authorization code grant)
  • 确保**允许的OAuth范围(Allowed OAuth Scopes)**包含email、openid、profile,和你代码中的scope一致

3. 验证Angular代码中的URL配置正确性

  • 检查login()方法中的redirect_uri参数,是否和Cognito配置的回调URL完全一致,没有拼写错误(比如域名大小写、末尾斜杠缺失)
  • 确认auth.service.ts中的redirectSignIn和redirectSignOut值,是否与Cognito配置的URL完全匹配,同时检查环境变量environment.cognitoAppClientId是否正确指向了目标应用客户端ID

4. 排除CloudFront的HTTPS和路径问题

  • 确保CloudFront分发使用的是HTTPS协议(Cognito不允许非localhost的HTTP回调URL),检查你的CloudFront分发是否配置了有效的SSL证书,访问CloudFront URL时是否正常显示HTTPS
  • 确认CloudFront的行为设置中,没有对根路径/进行特殊的重定向(比如自动去掉末尾斜杠),否则会导致回调时的URL与Cognito配置不匹配

5. 清除浏览器缓存和Cognito会话

  • 有时候浏览器缓存的旧会话或配置会导致问题,尝试清除浏览器缓存、Cookie,或者使用隐私模式测试登录流程

内容的提问来源于stack exchange,提问作者user6680

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 12:40:37