能否添加http://somesite:8080用于本地Google OAuth?遇生产环境HTTPS报错
解决Google OAuth添加http://somesite:8080的问题
问题根源
Google OAuth对生产状态的应用强制要求所有授权URI使用HTTPS协议,仅localhost作为本地开发特例,允许使用HTTP协议。你自定义的somesite不属于localhost范畴,因此触发了生产环境的HTTPS强制规则。
可行解决方法
- 切换应用到测试状态:
登录Google Cloud控制台,找到你的OAuth应用,将发布状态从“生产”改为“测试”。测试状态下允许添加HTTP协议的授权源/回调地址,http://somesite:8080就能正常被添加使用。 - 本地配置HTTPS:
如果必须保持应用的生产状态,需要给本地的somesite:8080服务配置HTTPS证书。可以用mkcert工具生成本地可信证书,将服务端口改为HTTPS默认的443或自定义端口(比如8443),然后添加https://somesite:8443作为授权地址。 - 映射localhost到somesite:
修改本地hosts文件(Windows在C:\Windows\System32\drivers\etc\hosts,Linux/macOS在/etc/hosts),添加一行127.0.0.1 somesite,之后通过http://localhost:8080访问服务,同时可以用somesite:8080的域名访问,利用localhost的HTTP豁免规则绕过限制。
补充说明
localhost是Google OAuth专门针对本地开发场景设置的例外,无论应用处于测试还是生产状态,http://localhost:端口格式的地址都允许使用HTTP协议,其他自定义域名则无此豁免。
内容的提问来源于stack exchange,提问作者Aleksa Bajat
相关产品推荐
相关产品推荐

