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

本地localhost调用Google OAuth触发invalid_request错误求助

问题核心原因

Google OAuth 2.0的授权规则已更新,所有用于生产的应用调用OAuth的重定向URI必须使用HTTPS协议,仅未上线的测试模式项目允许有限度使用localhost的HTTP请求,你遇到的Error 400: invalid_request本质就是请求不符合HTTPS要求触发的拦截。

核心问题答疑

  • Google并未停止支持localhost URI,只要配置符合规则就可以正常调用
  • 生产服务已经升级HTTPS的前提下,本地开发也建议配置HTTPS环境,避免规则调整导致的兼容问题
可选解决方案

方案1:临时测试方案(无需配置SSL)

仅适合临时调试使用:

  • 进入Google API Console对应项目的「OAuth同意屏幕」页面,确认项目发布状态为「测试」,且你用于登录的Google账号已被添加到「测试用户」列表
  • 确认授权重定向URI填写的内容和你本地项目实际调用的回调地址完全一致,包括端口、路径,例如本地回调为http://localhost:8080/auth/google/callback就要完整填写,不能省略任意部分
  • 确认Laravel项目的Socialite配置中,回调地址和你在控制台填写的内容完全匹配

方案2:永久本地开发方案(WAMP配置SSL)

适合长期开发使用,一劳永逸解决HTTPS兼容问题:

  1. 生成自签名SSL证书:
    本地安装OpenSSL后执行命令:
    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
    生成后将server.crt和server.key文件放到WAMP安装目录下的conf/ssl文件夹中(没有的话新建即可)
  2. 配置Apache开启SSL:
    • 打开WAMP的Apache配置文件httpd.conf,删除LoadModule ssl_module modules/mod_ssl.so和Include conf/extra/httpd-ssl.conf两行前的注释符号
    • 打开conf/extra/httpd-ssl.conf,修改节点配置:

      DocumentRoot "你的Laravel项目public目录绝对路径"
      SSLCertificateFile "你刚才存放server.crt的绝对路径"
      SSLCertificateKeyFile "你刚才存放server.key的绝对路径"

    • 重启WAMP的Apache服务,访问https://localhost验证HTTPS是否正常生效
  3. 同步更新相关配置:
    • 在Google API Console的授权重定向URI中添加HTTPS版本的本地回调地址,例如https://localhost/auth/google/callback
    • 修改Laravel项目.env文件的APP_URL为HTTPS开头的地址
    • 若Laravel生成的链接还是HTTP协议,可在app/Providers/AppServiceProvider.php的boot方法中添加\URL::forceScheme('https');强制生成HTTPS链接
    • 同步修改Socialite的Google回调配置为HTTPS版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:45:05