【问题标题】:React Native Instagram Explicit AuthenticationReact Native Instagram 显式身份验证
【发布时间】:2016-11-23 00:19:28
【问题描述】:

我正在创建一个反应原生应用程序并向其添加 instagram 身份验证。我希望用户能够将他们的 instagram 帐户“添加”到他们的主用户帐户,所以我有一个“连接你的 instagram”按钮。

我的网络应用程序正常工作。流程如下:

  1. 用户单击“连接 instagram”按钮并打开一个新窗口并定向到https://instagram.com/oauth/authorize/?client_id=xxxx blah blah
  2. 用户通过 CODE 参数进行身份验证和 instagram 重定向到我的 REDIRECT_URI
  3. 我的 API 服务器接受 CODE 参数并向 instagram 发送包含所有凭据的发布请求。
  4. Instagram 验证此信息并将用户提供给我ACCESS_TOKEN

谁能告诉我这应该如何在应用程序中工作?

我的REDIRECT_URI 应该是什么?服务器接口?

它与我的网络应用程序的流程相同吗?如果是这样,我如何在窗口关闭后让用户回到我的应用程序。我的应用如何知道用户现在拥有访问令牌?

【问题讨论】:

  • 我不能肯定地说这是“最好的”方式,但我认为在这种情况下,你会让你的 webapp 成为使用 instagram 作为授权源的 oauth 提供程序(意味着app 从来不知道它直接使用 instagram)。因此,您的应用程序将使用您的 API 初始化 oauth 流,API 将执行 instagram 流,并向应用程序发出对您的 API 有效的令牌。然后调用您的应用程序需要通过您的 API 进行 instagram。

标签: authentication react-native instagram


【解决方案1】:

对于本机应用程序,流程类似于您为 Web 应用程序描述的流程。

Auth0 Mobile + API architecture scenario 描述了当您需要对移动应用程序的用户进行身份验证,然后代表该用户访问 API 时会发生什么。

总结

  • 您将继续使用授权码授予;
  • 如果相关授权服务器支持它,您应该使用 PKCE (Proof Key for Code Exchange by OAuth Public Clients) 来增加安全性;
  • 您需要选择在本机应用程序中接收代码的方式; 您可以使用自定义方案com.myinstaapp:、带有http: 方案的本地网络服务器或其他一些选项(有关其他选择,请参阅OAuth redirect URI for native application 上的此答案)
  • 您将本机应用程序获得的代码与访问令牌交换,方式与您为 Web 应用程序所做的类似; (除了使用通常对本地应用程序无用的客户端机密,因为它们很容易泄露)

附加信息

Auth0 场景中描述的流程假定身份验证将通过符合 OpenID Connect 的流程进行,此外,您将获得 OAuth2 指定的访问令牌。我对 Instagram 不太熟悉,所以如果他们只支持 OAuth2,那这部分当然不适用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 2017-07-12
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 2017-06-13
    相关资源
    最近更新 更多