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

Heroku生产环境Google OAuth2.0报invalid_client错误求助

解决Heroku生产环境Google OAuth的invalid_client(401)错误

我一眼就揪出了问题的关键——你的生产环境配置文件里,把环境变量的引用用单引号包起来了,这会让Node.js把它当成字面量字符串,而不是去读取Heroku上配置的真实环境变量值。

问题根源

看你的这段配置代码:

module.exports = { 
  googleClientID:'process.env.GOOGLE_CLIENT_ID', 
  googleClientSecret:'process.env.GOOGLE_CLIENT_SECRET', 
  monoURI:'process.env.MONGO_URI', 
  cookieKey:'process.env.COOKIE_KEY' 
};

这里的'process.env.GOOGLE_CLIENT_ID'是一个普通字符串,不是对环境变量的引用。Google OAuth服务自然找不到这个名为process.env.GOOGLE_CLIENT_ID的客户端ID,直接返回invalid_client错误就毫不奇怪了。

修复步骤

  1. 修正配置文件,移除环境变量的引号
    把配置改成直接引用环境变量,不要加任何引号:

    module.exports = { 
      googleClientID: process.env.GOOGLE_CLIENT_ID, 
      googleClientSecret: process.env.GOOGLE_CLIENT_SECRET, 
      monoURI: process.env.MONGO_URI, 
      cookieKey: process.env.COOKIE_KEY 
    };
    

    这样Node.js才会正确读取Heroku上设置的环境变量值。

  2. 重新部署到Heroku
    提交修改后的代码,重新部署应用:

    git add .
    git commit -m "Fix production config to correctly reference env vars"
    git push heroku main
    
  3. 验证环境变量加载情况
    你可以在Heroku上运行临时进程,确认环境变量是否被正确读取:

    heroku run node -e "console.log('Google Client ID:', process.env.GOOGLE_CLIENT_ID)"
    

    如果输出的是你在Google Cloud Console里创建的真实客户端ID,说明环境变量配置没问题。

  4. 额外检查项

    • 确认Google Cloud Console中,OAuth客户端ID的授权重定向URI已经添加了https://vast-ridge-80091.herokuapp.com/auth/google/callback
    • 检查Heroku应用设置里的环境变量名称是否和代码里的完全一致(环境变量名称是大小写敏感的,比如GOOGLE_CLIENT_ID不能写成google_client_id)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:59:29