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

Amplify访问控制问题:配置CloudFront后无法登录

CloudFront搭配Amplify自定义域名登录循环问题解决指南

问题根源

这种反复要求输入凭据的情况,基本是CloudFront未正确转发Amplify认证依赖的Cookie、请求头,或是缓存配置打乱了会话状态——Amplify的认证会话靠特定Cookie和请求头维持,CloudFront如果拦截或未转发这些内容,每次请求都会被判定为未登录。

修复步骤

1. 配置CloudFront转发认证相关内容

打开CloudFront控制台,找到对应分发并编辑缓存行为:

  • Cookie设置:选择「转发所有Cookie」(若想缩小范围,至少要包含amplify-auth、amplify-idp-*、aws-amplify-appsync-token这类Amplify认证专用Cookie)
  • 请求头:添加并转发Authorization、x-amz-user-agent、x-amz-security-token、x-amz-date、X-Amzn-Trace-Id这些头信息
  • 查询字符串:设置为「转发所有查询字符串」——Amplify认证流程会用查询参数传递状态,丢失后会导致认证中断

2. 检查CloudFront域名与SSL配置

  • 确认自定义域名的SSL证书是在us-east-1区域的AWS Certificate Manager(ACM)申请的(CloudFront强制要求证书部署在此区域)
  • 检查CloudFront的默认根对象是否设为index.html,避免因404错误打断认证流程
  • 源设置中的源域名必须是Amplify的默认域名(例如xxx.amplifyapp.com),源协议策略选择「HTTPS only」

3. 更新Amplify认证的域名白名单

登录Amplify控制台,进入应用的「认证」模块:

  • 在OAuth配置中,将自定义域名添加到「授权重定向URI」和「注销重定向URI」列表,格式为https://你的自定义域名.com/*
  • 确认身份池的CORS配置允许自定义域名发起请求

4. 清除浏览器缓存和Cookie

之前的错误会话缓存可能残留问题,清除对应域名的所有Cookie和缓存后,再重新测试登录

5. 调整CloudFront缓存策略

如果使用了自定义缓存策略,不要缓存登录页、后台首页这类需要认证的页面;可设置基于Cookie的缓存键,防止未认证的缓存内容被返回

验证方式

修改完成后,用浏览器F12打开开发者工具查看网络请求:

  • 登录请求(如/oauth2/token)返回200状态,响应头包含Set-Cookie设置Amplify相关Cookie
  • 后续页面请求的请求头中带有Authorization头和对应的Amplify Cookie
  • 页面返回200状态,不会跳回登录页

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:45:05