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

Django应用接入Instagram登录报错:重定向URI不匹配

解决Instagram OAuth重定向URI不匹配问题

这个错误是OAuth场景里最常见的问题之一,核心原因就是你Django应用生成的重定向回调地址,和在Instagram开发者后台注册的地址不完全一致。我帮你一步步排查解决:

  • 第一步:先确认你的应用实际发送的回调URI
    点击「Connect to instagram」链接后,浏览器会跳转到Instagram的授权页面,你可以查看地址栏里的redirect_uri参数(可能需要解码URL)。比如如果你的项目里social-auth的URL前缀是social/,这个参数应该是类似http://localhost:8000/social/complete/instagram/(本地开发)或者https://your-production-domain.com/social/complete/instagram/(线上环境)。一定要完整复制这个URI,包括协议(http/https)、本地端口、完整路径,连结尾的斜杠都不能出错。

  • 第二步:去Instagram开发者后台核对注册的重定向URI
    登录Meta for Developers平台(Instagram开发者后台已整合至此),找到你的应用,进入产品 > Instagram > 基本显示(对应OAuth设置页面),找到「有效重定向URI」选项。把你刚才复制的完整URI添加进去,确保和参数里的内容完全匹配——比如不能把localhost写成127.0.0.1,线上环境必须用https(localhost除外),路径里的social/或social-auth/要和你Django urls.py里的配置对应。

  • 第三步:检查Django的URL配置和social-auth设置
    确认你的项目urls.py里已正确引入social-auth的URL,示例如下:

    urlpatterns = [
        # 其他URL配置
        url(r'^social/', include('social_django.urls', namespace='social')),
    ]
    

    这里的前缀social/要和回调URI里的路径对应,如果前缀是auth/,那回调路径就是/auth/complete/instagram/,必须和后台注册的一致。如果没有自定义配置SOCIAL_AUTH_INSTAGRAM_REDIRECT_URI,就用默认的/complete/instagram/加上你的URL前缀即可。

  • 第四步:测试前的细节调整

    • 本地开发时,固定用一个地址访问应用,比如localhost:8000,不要同时混用localhost和127.0.0.1,后台注册的URI也要和这个地址一致。
    • 清除浏览器缓存或者用无痕模式测试,避免旧缓存请求干扰结果。
    • 如果之前已经授权过你的应用,去Instagram的「设置 > 应用和网站」里取消授权,再重新尝试登录。

按照这几步操作,基本就能解决重定向URI不匹配的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:32:43