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

Next.js应用Google登录报错求助(基于NextAuth框架)

NextAuth Google登录异常解决办法

报错信息展示

前端登录报错:
Google登录前端报错1
Google登录前端报错2

终端输出错误:
终端报错信息

问题分析与修复步骤

  1. 修正authorizationUrl参数拼写错误
    你配置里的propmt是拼写错误,正确应为prompt,这个参数错误会直接导致Google OAuth授权流程异常,修改后的代码:
GoogleProvider({
  clientId: process.env.GOOGLE_ID,
  clientSecret: process.env.GOOGLE_SECRET,
  authorizationUrl:
  "https://accounts.google.com/o/oauth2/v2/auth?prompt=consent&access_type=offline&response_type=code",
})
  1. 调整session回调逻辑
    当前session回调返回false会直接终止会话,这会导致即使登录成功也无法创建有效会话。权限拦截应该放在signIn回调中,而非session回调,调整后的callbacks配置:
callbacks: {
  async signIn({ account, profile }) {
    if (account.provider === "google") {
      // 同时验证邮箱状态、域名及管理员权限
      return profile.email_verified && profile.email.endsWith("@gmail.com") && adminEmails.includes(profile.email);
    }
    return true;
  },
  session: ({session, token, user}) => {
    return session;
  },
},
  1. 验证环境变量有效性
    确保NEXTAUTH_SECRET、GOOGLE_ID、GOOGLE_SECRET这三个环境变量都正确加载且无拼写错误,可以在启动时临时打印变量值(注意不要泄露敏感信息)确认。

  2. 检查Google Cloud控制台配置

  • 确认OAuth客户端的授权重定向URI已添加当前应用的回调地址,比如开发环境的http://localhost:3000/api/auth/callback/google,生产环境要对应实际域名。
  • 确认已启用Google People API(NextAuth需要通过该API获取用户基础信息)。
  1. 清理缓存与Cookie
    重启Next.js开发服务,清除浏览器中与应用相关的Cookie后重新测试登录流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 23:53:22