【问题标题】:Instagram app authentication without redirect无需重定向的 Instagram 应用程序身份验证
【发布时间】:2023-03-29 02:57:01
【问题描述】:

我创建了一个 Instagram 应用。用户可以进行身份​​验证,然后列出他们上传的图片。

不幸的是,身份验证过程需要重定向,我想在没有重定向的情况下执行此操作。

有可能吗?

【问题讨论】:

    标签: instagram instagram-api


    【解决方案1】:

    你不一定要重定向(传统意义上的)!

    发出您的初始请求后,例如 https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code

    Instagram 确实通过 302 重定向响应到 redirect_uri 中指定的 URL,并且该 URI 将附加一个 codeaccess_token 参数,具体取决于您使用的流类型(指定通过您原来的response_type 参数)

    如果您的网络客户端能够在重定向请求触发之前拦截它,您可以从重定向 url 中收集“code”或“access_token”参数并根据需要继续。

    例如:对于 iOS,有一个 UIWebView 委托方法“shouldStartLoadWithRequest”,您可以使用它来检查重定向 URI 并在实际请求加载之前取消它。由于重定向 URI 具有您所追求的内容,因此您基本上可以将任何进一步的处理委托给后台线程(或其他线程)并继续进行。

    【讨论】:

      【解决方案2】:

      不,这不可能,你必须使用Oauth登录并获取access_token,这只是一次,你可以存储access_token并使用它来进行API调用,如果它失败并且无效access_token ,然后您要求用户再次登录并获得更新access_token

      【讨论】:

        【解决方案3】:

        Instagram API 使用 OAuth 2.0,请记住,对 API 的所有请求都必须通过 SSL (https://) 发出。

        重定向 uri 指定在用户选择是否对您的应用程序进行身份验证后我们将其重定向到哪里。需要此 uri 来捕获 API 响应。

        您有两种验证方式:

        1.服务器端:

        1. 将您的用户定向到授权 URL。

          一旦用户授权您的应用程序,Instagram 就会使用代码参数重定向到您的重定向 uri,以用于获取用户令牌。

        2. 请求用户访问令牌:

          现在您需要将在上一步中收到的代码交换为访问令牌。您必须发布此代码以及一些应用识别参数。

          如果成功,此调用将返回一个 OAuth Token。

        2.客户端

        1. 将您的用户引导至授权 URL。

        2. 通过 URL 接收访问令牌:

          一旦用户通过身份验证并授权您的应用程序,Instagram 将使用 url 片段中的访问令牌重定向到您的重定向 uri。


        Instagram 信息:https://www.instagram.com/developer/authentication/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-22
          • 2015-03-26
          • 1970-01-01
          • 1970-01-01
          • 2017-02-03
          • 1970-01-01
          • 1970-01-01
          • 2011-02-18
          相关资源
          最近更新 更多