部署在AWS的SvelteKit+AuthJS出现UntrustedHost错误求助
解决SvelteKit + AuthJS部署AWS Elastic Beanstalk时的UntrustedHost错误
可能的原因及解决步骤
1. 验证环境变量是否正确生效
- 登录AWS控制台,进入你的Elastic Beanstalk环境,导航到配置 > 软件 > 环境变量,确认
AUTH_TRUST_HOST已添加且值为true。 - 在应用中添加调试代码验证环境变量读取情况,比如在
hooks.server.ts中加入:
console.log("AUTH_TRUST_HOST:", process.env.AUTH_TRUST_HOST);
部署后查看EB日志,确认输出为true。
2. 配置Nginx传递正确的转发头
AWS Elastic Beanstalk默认的Nginx配置可能未正确传递主机和协议头,导致AuthJS无法识别可信主机。创建.ebextensions/nginx.conf文件,添加以下配置:
files: "/etc/nginx/conf.d/00_forwarded_headers.conf": mode: "000644" owner: root group: root content: | proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr;
该配置会让Nginx将真实的主机、协议等信息传递给SvelteKit应用,确保AuthJS能正确识别请求来源。
3. 统一AuthJS的trustHost配置
你的代码中已经显式设置了trustHost: true,但需确保与环境变量AUTH_TRUST_HOST的配置一致:
- 若依赖环境变量,可移除代码中的
trustHost: true,完全由环境变量控制; - 若保留代码中的配置,需确保环境变量值也为
true,避免冲突。
4. 升级AuthJS依赖
部分旧版本的@auth/sveltekit或@auth/core可能存在环境变量处理的bug,执行以下命令升级到最新版本:
npm update @auth/sveltekit @auth/core
内容的提问来源于stack exchange,提问作者Sequoia
相关产品推荐
相关产品推荐

