React Native Instagram显式身份验证

时间:2016-11-23 00:19:28

标签: authentication react-native instagram

我正在创建一个react native应用程序并为其添加instagram身份验证。我希望用户能够将他们的Instagram帐户“添加”到他们的主用户帐户,因此我有一个“连接你的Instagram”按钮。

我在网络应用程序上工作正常..流程如下:

  1. 用户点击“连接Instagram”按钮,系统会打开一个新窗口,并转到https://instagram.com/oauth/authorize/?client_id=xxxx blah blah
  2. 用户通过REDIRECT_URI参数进行身份验证并将Instagram重定向到我的CODE
  3. 我的API服务器获取CODE参数,并使用所有凭据向Instagram发送帖子请求。
  4. Instagram会验证此信息并向我提供用户ACCESS_TOKEN
  5. 有人可以告诉我这应该如何在应用中运行吗?

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

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

1 个答案:

答案 0 :(得分:2)

使用本机应用程序,该流程与您为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那部分当然不适用。