在未登录浏览器连接 Instagram 时,OAuth Instagram API 删除重定向 URL 中的参数
Posted
技术标签:
【中文标题】在未登录浏览器连接 Instagram 时,OAuth Instagram API 删除重定向 URL 中的参数【英文标题】:OAuth Instagram API remove parameter in redirect URL when connect Instagram without logged in browser 【发布时间】:2018-11-17 13:47:45 【问题描述】:如果用户尝试在 OAuth 窗口中登录,Instagram API(经典,而非图形)会丢失重定向 URL 中的自定义参数。
由于重定向 URI 中的自定义参数丢失,Instagram 获取访问令牌返回“重定向 URI 不匹配错误”
来自 Instagram 的回应:
'error_code'=>90001, 'error_message'=>'POST https://api.instagram.com/oauth/access_token/: 400: OAuthException: Redirect URI doesn't match original redirect URI'
如果用户在进行 OAuth 之前登录 Instagram,一切正常。
【问题讨论】:
欢迎来到 Stack Overflow!请阅读How to Ask 页面并更新您的问题。 有同样的问题。删除redirecturl中的参数值。 我最近也看到了同样的问题 重定向 URL 必须与您注册的匹配。为什么需要自定义参数?你在什么操作系统或平台上?通常很容易跟踪身份验证的整个进度,因此不需要参数。我做了很多 Instagram Auth。 对此有任何更新或解决方法吗? 【参考方案1】:只需将用于获取令牌的 uri 更改为您在 OAuth 窗口中登录时获得的损坏的重定向 url。这将给出适当的响应。但是当然你会丢失你的查询参数。
您始终可以通过检查您传递的重定向 URL 是否已更改,在您的应用程序中添加特定规则。
这显然不是解决办法,而是一种解决方法。
【讨论】:
【参考方案2】:您是否尝试过写信给 Instagram 支持?看起来像 Instagram 的错误。
另一种解决方法:您可以在参数state
中传递此自定义参数(请参阅https://www.instagram.com/developer/authentication/)
【讨论】:
【参考方案3】:我有同样的问题,但是当我尝试报告它时,平台对我说“支持已被弃用”。我找到的解决方法是将参数保存在浏览器的 sessionStorage 中。
【讨论】:
以上是关于在未登录浏览器连接 Instagram 时,OAuth Instagram API 删除重定向 URL 中的参数的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 提供商登录在 facebook/messenger/instagram 应用内浏览器 webview 中不起作用。错误 403:disallowed_useragent