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

NextAuth(Auth.js)本地正常,部署Vercel后出现500错误求助

解决NextAuth(Auth.js)部署到Vercel后出现500服务器错误的问题

以下是常见问题及对应解决方案:

1. 环境变量未在Vercel中正确配置

  • 本地.env文件中的关键变量(如NEXTAUTH_SECRET、OAuth服务商的CLIENT_ID/CLIENT_SECRET等)必须手动添加到Vercel项目的「设置 > 环境变量」中。
  • 重点:NEXTAUTH_SECRET在本地开发时会自动生成,但生产环境必须手动设置,缺失会直接触发500错误。
  • 验证方式:部署完成后,在Vercel的部署详情页查看环境变量是否全部加载。

2. NextAuth配置未适配Vercel环境

  • 检查auth.js(App Router)或[...nextauth].js(Pages Router)中的NEXTAUTH_URL配置:
    • 不要硬编码本地地址(如http://localhost:3000),建议移除手动配置,NextAuth会自动识别Vercel域名;若需手动设置,用动态值:process.env.NEXTAUTH_URL || "https://你的Vercel域名.vercel.app"
  • 确保路由文件路径正确:App Router需放在app/api/auth/[...nextauth]/route.js,Pages Router需放在pages/api/auth/[...nextauth].js,路径错误会导致API无法访问。

3. 依赖版本不兼容或缺失

  • 确认@auth/nextjs(或next-auth)与next版本兼容,例如最新版Auth.js要求Next.js 13.4及以上版本。
  • 解决:更新依赖到兼容版本,执行命令:
    npm install @auth/nextjs@latest next@latest
    
  • 确保package-lock.json或yarn.lock未被.gitignore忽略,避免Vercel部署时依赖安装不完整。

4. Session存储未适配生产环境

  • 本地开发默认使用内存存储Session,但Vercel的无服务器环境不支持内存存储,会导致Session异常。
  • 解决:配置持久化存储适配器,比如Vercel KV、数据库等。示例(Vercel KV):
    import { UpstashRedisAdapter } from "@auth/upstash-redis-adapter";
    import { Redis } from "@upstash/redis";
    
    const redis = new Redis({
      url: process.env.UPSTASH_REDIS_REST_URL,
      token: process.env.UPSTASH_REDIS_REST_TOKEN,
    });
    
    export const authOptions = {
      adapter: UpstashRedisAdapter(redis),
      // 其他Auth配置
    };
    

5. OAuth服务商回调URL未更新为生产地址

  • 本地开发时设置的回调URL(如http://localhost:3000/api/auth/callback/google)在生产环境无效,需在OAuth服务商控制台添加Vercel域名的回调地址(如https://你的Vercel域名.vercel.app/api/auth/callback/google)。
  • 确保回调地址与Vercel部署后的域名完全一致,包括HTTP/HTTPS协议。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:41:14