无法在GCloud OAuth 2.0客户端ID中添加HTTP重定向URI求助
解决Google OAuth重定向URI的HTTPS强制要求问题
这是Google近期针对OAuth敏感权限范围的政策收紧导致的问题——现在使用敏感权限(比如获取用户邮箱、基础个人信息这类)的OAuth客户端,重定向URI必须采用HTTPS协议,仅本地开发用的localhost/127.0.0.1可以例外。你之前能添加HTTP地址是因为当时政策还未严格执行,现在规则正式生效了。
针对你的App Engine场景,这里有两个实用的解决方向:
1. 切换到App Engine的正式HTTPS域名
App Engine默认给每个应用提供了HTTPS格式的正式域名(格式为https://[你的项目ID].appspot.com),你可以按以下步骤操作:
- 把
https://campus-study-2019.appspot.com/oauth2callback添加到Google Cloud控制台的Authorized redirect URIs列表中 - 修改你的webapp代码里的OAuth回调配置,将重定向地址更新为这个HTTPS版本
这个方案既符合Google的安全要求,也是生产环境应使用的正式域名,还能避免预览域名的临时属性带来的问题。
2. 本地调试用localhost例外
如果是在本地开发测试,Google允许http://localhost或http://127.0.0.1(可带任意端口)作为敏感范围的重定向URI。你可以:
- 在Google Cloud控制台添加
http://localhost:8080/oauth2callback(端口根据你本地服务的实际运行端口调整) - 本地运行webapp时,将回调目标设置为这个localhost地址,就能正常完成授权流程
最后要注意:更新完重定向URI后,务必确保webapp中的OAuth客户端配置(包括回调地址、客户端ID/密钥)和Google Cloud控制台里的信息完全一致,协议、域名、路径都不能有拼写错误。另外确认你的OAuth客户端类型是「Web应用」,不同类型的客户端重定向规则会存在差异。
内容的提问来源于stack exchange,提问作者user3341540




