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

Auth.js集成Google登录遇UntrustedHost错误求助(已配SSL及trustHost)

解决Auth.js Google登录的UntrustedHost错误

问题详情

在使用Auth.js实现Google登录时,持续触发以下错误:

[auth][error] UntrustedHost: Host must be trusted. URL was: https://www.dealdhoondo.com/api/auth/signin/google?. Read more at https://errors.authjs.dev#untrustedhost

已尝试的操作:

  • 在配置中添加auth_url环境变量
  • 设置trustHost: true
  • 确认域名拥有有效SSL证书,可通过HTTPS访问

当前配置:
NextAuth代码片段:

export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter: PostgresAdapter(pool),
  providers: [Google],
  trustHost: true,
  pages: {
    signIn: '/auth/login',
  }
})

Docker环境变量设置:

ENV AUTH_URL=https://www.dealdhoondo.com/

也曾尝试:

ENV AUTH_URL=https://www.dealdhoondo.com/api/auth

排查建议与解决方案

1. 修正环境变量名称为NEXTAUTH_URL

Auth.js官方要求使用NEXTAUTH_URL而非AUTH_URL作为环境变量名,这是常见的配置错误。修改Docker环境变量:

ENV NEXTAUTH_URL=https://www.dealdhoondo.com

注意:值末尾不要加斜杠,也不需要包含/api/auth路径,Auth.js会自动拼接。

2. 确保反向代理正确传递Host头

如果服务部署在反向代理(如Nginx、Traefik)之后,需要确保代理正确传递Host请求头,否则Auth.js无法识别真实的外部域名。以Nginx为例,在代理配置中添加:

proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;

这会让Auth.js获取到正确的外部域名和协议。

3. 验证容器内环境变量是否生效

进入Docker容器,执行以下命令确认NEXTAUTH_URL是否正确加载:

echo $NEXTAUTH_URL

输出应严格等于https://www.dealdhoondo.com,无多余字符或路径。

4. 检查Next.js的basePath配置(若有)

如果你的Next.js项目设置了basePath(如/app),需要将其包含在NEXTAUTH_URL中,例如:

ENV NEXTAUTH_URL=https://www.dealdhoondo.com/app

同时确保NextAuth配置中没有冲突的路径设置。

5. 确认trustHost配置未被覆盖

检查是否在不同环境(开发/生产)的配置文件中存在覆盖trustHost的情况,确保生产环境的NextAuth配置中trustHost: true确实生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 05:03:24