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

NextAuth Google Provider生产环境redirect_uri_mismatch错误求助

解决NextAuth + Google Provider生产环境重定向到localhost的问题

以下是针对你遇到的生产环境重定向到localhost问题的具体解决方案:

1. 修正NEXTAUTH_URL环境变量

  • 生产环境必须设置完整的HTTPS地址,比如https://realdomain.com,不能只填域名
  • 检查部署平台(Vercel、Netlify、自建服务器等)的环境变量配置,确保变量名NEXTAUTH_URL拼写正确(全大写),且值没有多余空格
  • 如果是自建服务器,要确保环境变量在应用启动时被正确加载(比如用dotenv或服务器配置文件注入)

2. 显式在NextAuth配置中指定URL

在你的[...nextauth].js中添加url字段,强制指定生产环境地址,避免自动检测出错:

import NextAuth from 'next-auth';
import GoogleProvider from 'next-auth/providers/google';
import FacebookProvider from "next-auth/providers/facebook";

export default NextAuth({
  // 新增:显式指定URL
  url: process.env.NEXTAUTH_URL,
  providers: [
    GoogleProvider({
      clientId: process.env.GOOGLE_CLIENT_ID,
      clientSecret: process.env.GOOGLE_CLIENT_SECRET
    }),
    FacebookProvider({
      clientId: process.env.FACEBOOK_CLIENT_ID,
      clientSecret: process.env.FACEBOOK_CLIENT_SECRET
    })
  ],
  secret: process.env.NEXTAUTH_SECRET,
  callbacks: {
    async session({ session, token }) {
      return session;
    },
  },
})

3. 检查Google Cloud Console的重定向URI配置

  • 确保只保留生产环境的HTTPS重定向URI:https://realdomain.com/api/auth/callback/google,删除所有localhost相关条目
  • 保存配置后等待5-10分钟,GCP的配置变更可能存在缓存延迟
  • 确认URI没有拼写错误,必须和生产环境的实际地址完全一致

4. 配置反向代理的请求头(如果使用)

如果生产环境用了Nginx等反向代理,需要添加以下请求头,让NextAuth能正确识别当前域名:

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

没有正确设置这些头会导致NextAuth误判当前地址为localhost。

5. 验证环境变量加载情况

在[...nextauth].js中添加日志,确认生产环境下NEXTAUTH_URL是否正确加载:

console.log('Loaded NEXTAUTH_URL:', process.env.NEXTAUTH_URL);

部署后查看服务器日志,如果输出是localhost:3000,说明环境变量没有正确注入,需要排查部署平台的配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 04:53:14