React Native Instagram 显式身份验证

Jas*_*son 5 authentication instagram react-native

我正在创建一个 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

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

REDIRECT_URI应该是什么?服务器API?

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

Joã*_*elo 2

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

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

概括

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

附加信息

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