多年来,我一直在我的网站上使用 Google 的 OAuth 2.0 身份验证。最近它停止工作了,因为我之前使用的 redirect_urihttp://
和 Google 现在显然需要 https。我的网站支持 https,所以我将本地 client_secrets.json 文件更改为使用 https,并转到 Google Cloud Platform 上的凭据页面,选择 OAuth 2.0 客户端 ID,并确保授权重定向 URI 下的条目https://
也支持 https。重新启动我的 Web 服务器后,身份验证仍然失败,因为 redirect_uri 仍在使用http://
。
这只是一个缓存问题,会在一小时/一天内消失吗?我还需要做其他什么来更新重定向 URI 或告诉 Google 刷新它吗?
答案1
您声明因为redirect_uri仍然使用http://。什么在使用该 URI?您的应用程序中是否有硬编码的路径?
或者您的意思是来自 Google 的回调将转到您的 HTTP 端点?您的代码会将回调 URI 告知 Google。Google 会验证该 URI 是否在批准的回调列表中。仔细检查您的应用程序代码中是否存在硬编码 URI。
另一种可能性是,你位于代理(负载均衡器)后面,你的应用认为协议是 HTTP,但实际上是 HTTPS。这就需要更新你的应用以支持 HTTP 标头X-转发-Proto。