gpt4 book ai didi

reactjs - react native 应用程序中的身份验证和 session 管理

转载 作者:行者123 更新时间:2023-12-03 13:22:13 26 4
gpt4 key购买 nike

我一直在寻找在基于 react 原生的应用程序上对用户进行身份验证的解决方案。我遇到过 Firebase 和 JSON Web token 之类的东西,但是,我似乎找不到服务器和客户端设备之间的 session 管理的示例。

对于 react /服务器关系,我缺少的是服务器端的部分,它相当于 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处理移动应用程序时的协议(protocol),特别是因为刷新 token 架构,它可以帮助我长时间保持用户身份验证,而不会损害他们自己的安全。

此外,这是主要社交 SDK 使用的协议(protocol):Google、Facebook、Twitter 和 Slack。最好的部分:您可以在服务器端使用开箱即用的解决方案,例如 OAuth 2.0 Server for PHPOAuth 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);
});

关于reactjs - react native 应用程序中的身份验证和 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47400120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com