我一直在寻找在基于反应原生的应用程序上验证用户身份的解决方案.我遇到过像Firebase和
JSON网络令牌这样的东西,但是,我似乎无法找到服务器和客户端设备之间的会话管理示例.
对于react / server关系,我缺少的位是服务器端的一块,相当于PHP中的$_SESSION变量,可用于存储用户的唯一ID.
=> Client token sent with each data request. => Request Checks token and sends data back for that specific user/token pair
我正在寻找一些关于如何在服务器端管理它的示例代码,并建议您建议我使用它来实现它的工具/实现.
我目前不打算实现oAuth2,因为我希望创建自己的登录系统,以便我能够正确理解应用程序的工作原理.
关于OAuth 2.0的注意事项:
在处理移动应用程序时,我强烈建议使用OAuth 2.0协议,特别是因为刷新令牌架构,这有助于我长时间保持用户身份验证,而不会影响他们自己的安全性.
此外,这是主要社交SDK使用的协议:谷歌,Facebook,Twitter和Slack.最好的部分:您可以在服务器端使用现成的解决方案,例如OAuth 2.0 Server for PHP和OAuth 2.0 Server for NodeJS.
在React Native上安全地存储数据
回到React Native端,一旦拥有了一组凭据(JWT或OAuth 2.0),就必须安全地存储它们.没有直接的方法只使用框架来实现它,但是有一个很棒的软件包叫做react-native-keychain,可以在iOS和Android平台上处理它.
将其添加到您的项目中.
# Using Yarn yarn add react-native-keychain # Or using NPM npm install --save react-native-keychain
然后在用户进行身份验证的地方使用它.
import * as Keychain from 'react-native-keychain'; // When you have the JWT credentials Keychain .setGenericPassword("JWT",token) .then(function() { console.log('Credentials saved successfully!'); }); // When you need to get it from safe storage Keychain .getGenericPassword() .then(function(credentials) { console.log('Credentials successfully loaded for user:' + credentials.password); }).catch(function(error) { console.log('Keychain couldn\'t be accessed! Maybe no value set?',error); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。