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

使用Django+django-allauth对接Instagram OAuth时遇Invalid redirect_uri错误求助

解决Instagram OAuth "Invalid redirect_uri" 错误(Django + django-allauth)

以下是逐个排查和解决的步骤:

1. 严格匹配Instagram开发者后台的重定向URI

Instagram对重定向URI的校验是完全精确匹配,任何细微差异都会触发错误:

  • 协议必须一致:本地开发用http,生产环境必须用https(Instagram要求生产环境强制HTTPS)
  • 域名、端口、路径必须和Django生成的回调URL完全一致,比如本地开发的标准URL是:http://localhost:8000/accounts/instagram/login/callback/
  • 注意末尾的斜杠,不能多也不能少

2. 对齐Django-allauth的配置

  • 检查Django后台的**社交应用(Social Application)**设置:注册Instagram时填写的回调URL必须和Instagram后台的完全一致
  • 在settings.py中确保协议配置正确:
    # 本地开发用http,生产环境改为https
    ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'http'
    
  • 确认SITE_ID对应的Site配置:Django后台的Sites模块中,当前启用的Site的域名必须和回调URL的域名/端口一致(比如本地设为localhost:8000)

3. 确认回调路径符合allauth规则

django-allauth默认的Instagram回调路径是/accounts/instagram/login/callback/,如果你在urls.py中自定义了路径,必须同时更新Instagram后台的重定向URI,确保两边路径一致。

4. 本地开发的特殊处理

  • 若用localhost测试有问题,尝试替换为127.0.0.1(比如http://127.0.0.1:8000/accounts/instagram/login/callback/),并同步更新Instagram后台的配置
  • 清除浏览器缓存或使用无痕模式测试,避免旧的缓存URL干扰
  • 确认Django服务的端口和URL中的端口一致(比如Django跑在8000,URL里必须带:8000)

5. 注意配置生效延迟

修改Instagram开发者后台的重定向URI后,可能需要等待1-5分钟才会生效,不要修改后立刻测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 06:45:11