Google OAuth本地正常但Vercel生产环境无法生成Auth会话
Supabase Google OAuth 生产环境(Vercel)故障排查方案
一、Supabase 配置检查
- 确认Site URL已填写Vercel生产域名(格式如
https://your-vercel-app.vercel.app),不要加斜杠结尾,不能仅保留localhost。 - 检查Redirect URLs,必须包含生产环境的完整回调路径,比如
https://your-vercel-app.vercel.app/auth/callback/google(根据你实际的登录回调路径调整),同时确保域名是https协议。
二、Google Cloud 配置调整
- 进入Google Cloud Console的OAuth 2.0客户端ID设置,添加Supabase的官方回调地址到已授权的重定向URI:
https://[你的Supabase项目ID].supabase.co/auth/v1/callback,这一步是核心,很多生产环境失败都是因为漏填这个地址。 - 在已授权的JavaScript来源中添加你的Vercel生产域名(https开头),localhost可保留用于本地开发。
- 确认OAuth客户端应用处于已发布状态,若为测试版,仅添加的测试邮箱能登录,需补充测试用户或直接发布应用。
三、NextJS 13 代码与环境检查
- 在Vercel的环境变量中正确配置
NEXT_PUBLIC_SUPABASE_URL和NEXT_PUBLIC_SUPABASE_ANON_KEY,确保使用生产环境的Supabase密钥,而非本地开发值。 - 调用
signIn("google")时,指定正确的redirectTo参数,指向生产环境页面(如https://your-vercel-app.vercel.app/dashboard),避免使用localhost。 - 若使用App Router/Server Components,初始化Supabase时需设置生产环境的Cookie安全选项:
const supabase = createServerComponentClient({ cookies, options: { cookieOptions: { secure: process.env.NODE_ENV === "production", }, }, });
- 检查Supabase控制台的CORS设置,确保已添加Vercel生产域名。
四、日志与调试
- 打开浏览器开发者工具的Network标签,查看回调请求的响应状态码与错误信息(如400/403),定位具体问题。
- 查看Supabase控制台的Auth -> Logs,里面会记录登录失败的详细原因(如重定向URI不匹配、客户端ID错误等)。
内容的提问来源于stack exchange,提问作者Remy Jouni
相关产品推荐
相关产品推荐

