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

使用Auth.js(next-auth v5)认证时500内部服务器错误的解决方法

解决Next-auth@5-beta谷歌登录出现Configuration错误的500问题

可能的原因及对应解决步骤

1. 环境变量未正确配置或加载

  • 项目根目录必须创建.env.local文件,填入完整的变量值:
    GOOGLE_CLIENT_ID=你的谷歌OAuth客户端ID
    GOOGLE_CLIENT_SECRET=你的谷歌OAuth客户端密钥
    AUTH_SECRET=随机生成的密钥(可通过终端执行`openssl rand -hex 32`生成)
    
  • Next.js默认只会加载.env.local、.env.development这类命名的环境文件,别用普通.env文件,否则变量无法被读取。
  • 重启开发服务器,确保环境变量生效。

2. Google开发者控制台重定向URI配置错误

  • 登录谷歌开发者控制台,找到你的OAuth 2.0客户端配置页。
  • 必须添加本地开发的重定向URI:http://localhost:3000/api/auth/callback/google,保存后等待几分钟让设置生效。

3. 确认Next-auth配置文件的导入路径

  • 检查jsconfig.json或tsconfig.json中是否配置了@指向src目录(默认Next.js项目已支持,若自定义过配置需确认):
    {
      "compilerOptions": {
        "baseUrl": ".",
        "paths": {
          "@/*": ["src/*"]
        }
      }
    }
    
  • 确保src/app/api/auth/[...nextauth]/route.js中import { handlers } from "@/auth"能正确解析到src/auth.js文件。

4. 检查Next-auth版本兼容性

  • 重新安装beta版本,避免依赖混乱:
    npm install next-auth@beta
    # 或使用yarn
    yarn add next-auth@beta
    

5. 调试获取具体错误信息

  • 查看终端的服务器日志,或浏览器Network面板中/api/auth/signin请求的响应详情,定位具体配置缺失项。
  • 可临时在src/auth.js中添加日志打印,确认环境变量是否读取成功:
    import NextAuth from "next-auth";
    import GoogleProvider from "next-auth/providers/google"
    
    console.log("GOOGLE_CLIENT_ID:", process.env.GOOGLE_CLIENT_ID);
    console.log("AUTH_SECRET:", process.env.AUTH_SECRET);
    
    export const { handlers, signIn, signOut, auth } = NextAuth({
        providers: [
            GoogleProvider({
                clientId: process.env.GOOGLE_CLIENT_ID,
                clientSecret: process.env.GOOGLE_CLIENT_SECRET,
            }),
        ],
        secret: process.env.AUTH_SECRET
    })
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:10:56