React Native Instagram 显式身份验证

React Native Instagram Explicit Authentication

我正在创建一个 React 本机应用程序并向其添加 instagram 身份验证。我希望用户能够 "add" 他们的 Instagram 帐户到他们的主要用户帐户,所以我有一个 "connect your instagram" 按钮。

我在我的网络应用程序上运行良好。流程如下:

  1. 用户点击 'connect instagram' 按钮,一个新的 window 打开并定向到 https://instagram.com/oauth/authorize/?client_id=xxxx blah blah
  2. 用户通过 CODE 参数进行身份验证,instagram 重定向到我的 REDIRECT_URI
  3. 我的 API 服务器接受 CODE 参数并向 instagram 发送一个 post 请求以及所有凭据。
  4. Instagram 验证此信息并向我提供用户 ACCESS_TOKEN

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

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

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

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

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

总结

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

附加信息

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