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

NextAuth集成Google OAuth在Heroku部署遇redirect_uri_mismatch错误

问题原因及解决方法

原因分析

  1. NextAuth未正确识别生产环境域名:NextAuth依赖NEXTAUTH_URL环境变量生成OAuth回调地址,Heroku部署时如果未配置该变量或变量值错误,NextAuth会默认使用本地开发的http://localhost:3000作为回调地址,导致Google OAuth返回redirect_uri_mismatch错误。
  2. 手动指定redirect_uri配置错误:你之前手动设置的redirect_uri未对应Heroku的生产域名,或者登录后的跳转逻辑仍指向localhost,导致登录后无法在Heroku应用保持会话。

解决步骤

  • 配置Heroku的NEXTAUTH_URL环境变量
    进入Heroku应用的「设置」页面,找到「Config Vars」,添加键为NEXTAUTH_URL,值为你的Heroku应用完整HTTPS域名(例如https://app_name.herokuapp.com)。Vercel会自动识别部署域名,无需额外设置。
  • 验证Google Cloud Console的重定向URI
    登录Google Cloud Console,找到对应的OAuth 2.0 Client ID,确保重定向URI列表中包含https://app_name.herokuapp.com/api/auth/callback/google,域名和协议要与NEXTAUTH_URL完全一致。
  • 移除Google Provider中的手动redirect_uri配置
    删掉NextAuth配置里Google Provider的redirect_uri参数,让NextAuth自动基于NEXTAUTH_URL生成正确的回调地址,避免硬编码导致的环境不匹配。
  • 确认环境变量生效
    可以通过Heroku日志查看应用启动时是否加载了正确的NEXTAUTH_URL,或者在应用代码中临时打印process.env.NEXTAUTH_URL验证值是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 07:52:10