You need to enable JavaScript to run this app. Django对接Google API OAuth2报insecure_transport错误如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Django对接Google API OAuth2报insecure_transport错误如何解决?

解决方案

这个报错是oauthlib库的本地校验规则触发的,Google本身允许localhost环境使用HTTP回调用于开发测试,不用调整Google Cloud后台的配置就可以通过以下方法解决:

方案1:本地调试临时关闭安全校验(推荐开发用,最快)

该方案仅适用于本地DEBUG开发环境,严禁在生产环境开启。
你可以通过设置OAUTHLIB_INSECURE_TRANSPORT环境变量跳过HTTP校验:

  • 临时生效(运行项目前执行命令):
    • Linux/macOS终端执行:export OAUTHLIB_INSECURE_TRANSPORT=1
    • Windows CMD执行:set OAUTHLIB_INSECURE_TRANSPORT=1
    • Windows PowerShell执行:$env:OAUTHLIB_INSECURE_TRANSPORT=1
  • 永久生效(Django项目内配置):
    打开项目settings.py文件,添加如下代码,仅在DEBUG模式下开启配置,避免生产环境误开启:
    import os
    if DEBUG:
        os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
    

配置完成后直接重启Django服务即可正常使用HTTP的localhost回调地址。

方案2:本地配置HTTPS环境(更贴近生产场景)

如果你希望本地开发和生产环境保持一致,可以给本地Django服务配置HTTPS:

  1. 安装HTTPS扩展包:pip install django-sslserver
  2. 打开settings.py,把sslserver加入INSTALLED_APPS列表:
    INSTALLED_APPS = [
        # ... 其他原有应用
        'sslserver',
    ]
    
  3. 改用HTTPS模式启动Django服务:python manage.py runsslserver 8000
  4. 把你代码里的redirect_uri修改为https://localhost:8000/google/oauthcallback,同时去Google Cloud控制台的OAuth凭据配置里,把这个HTTPS地址加入授权回调地址列表即可。

生产环境注意事项

生产环境必须关闭OAUTHLIB_INSECURE_TRANSPORT配置,使用正规CA机构签发的HTTPS证书配置服务,禁止使用自签名证书用于公开访问的生产环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 14:36:03