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

Next Auth配置Google Provider仍返回localhost地址问题求助

解决Next Auth返回localhost地址的问题

1. 核心配置:设置NEXTAUTH_URL环境变量

Next Auth默认会使用localhost:3000作为基础地址,必须通过环境变量指定对应环境的正确域名:

  • 本地开发:在项目根目录的.env.local文件中添加:
    NEXTAUTH_URL=http://localhost:3000
    
  • Vercel生产环境:
    • 进入Vercel项目的「Settings」→「Environment Variables」页面
    • 添加变量NEXTAUTH_URL,值设为你的Vercel项目域名(例如https://your-project.vercel.app)
    • 保存后重新部署项目

2. 检查Next Auth配置文件

在pages/api/auth/[...nextauth].js/ts(App Router对应app/api/auth/[...nextauth]/route.js/ts)中,确保Google Provider没有硬编码callbackUrl为localhost:

import NextAuth from "next-auth"
import GoogleProvider from "next-auth/providers/google"

export default NextAuth({
  providers: [
    GoogleProvider({
      clientId: process.env.GOOGLE_CLIENT_ID,
      clientSecret: process.env.GOOGLE_CLIENT_SECRET,
      // 禁止硬编码localhost,让Next Auth自动基于NEXTAUTH_URL生成回调地址
      // callbackUrl: "http://localhost:3000/api/auth/callback/google" ❌
    }),
  ],
})

3. 验证Google Cloud OAuth配置

打开Google Cloud的「OAuth 2.0 客户端ID」配置页面,确认已添加完整的回调地址:

  • 生产环境:https://your-project.vercel.app/api/auth/callback/google
  • 本地开发:http://localhost:3000/api/auth/callback/google
    注意必须填写完整路径,不能只填域名

4. 清除缓存重新部署

Vercel的构建缓存可能导致环境变量不生效,部署时选择「Redeploy」并勾选「Clear build cache」选项,确保新配置生效


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:01:06