我正在使用React Native开发一个应用程序,我找不到任何教程来根据我自己的服务验证我的用户(我认为这称为第一方应用程序)。用户需要能够使用用户/密码以及他们的Facebook帐户进行身份验证。
我一直在研究它并发现我应该使用授权代码授权流程,它应该以这种方式工作:
据我所知,我的所有重定向链接都应以 myapp:// uri 开头,在本机浏览器中打开它。但我真的不需要第二步,或者我呢?为什么我要求用户获得同一服务的权限?
我还不明白的另一件事是,要为访问令牌交换auth代码,我需要传递我的客户端ID和客户端密钥。但我已经读过,我不必在本机应用程序中存储客户端机密,因为它可能会受到损害。
答案 0 :(得分:0)
你是如何发起反应原生应用的?通过template<int nDim>
void foo () {
Eigen::Matrix<double, nDim, nDim> bar;
bar = generate_a_special_Matrix<nDim>();
// ... further math here
}
或create-react-native-app
或Expo XDE
?如果前两个选项中的任何一个,Facebook Auth变得非常直接。这是Expo's Facebook Auth Docs的链接。这是一个复制/粘贴示例,看起来像......
react-native init
这将(默认情况下)尝试通过&#39; web&#39;进行身份验证,这意味着它会尝试通过模式UIWebView弹出登录。还有其他方法,但它们仅对独立应用程序有效(请参阅行为选项)。
我知道您说您想使用自己的服务进行身份验证,但我认为至少可以通过Auth0 React Native SDK Tutorial来了解如何保护客户端ID和机密信息对您有用。以及如何了解良好的auth流程是什么样的。然后决定是否将自己重建为自己的服务或是否使用他们的服务。
答案 1 :(得分:0)
OAuth 2.0不是身份验证协议,而是授权协议。这就是您遇到第2步问题的原因。This可能会让您感兴趣。
对于你的流程,我认为你有两个选择。