我应该检查AsyncStorage令牌值对一个关键在博览会反应原生?



我是新的反应原生,我试图建立一个认证系统为我的应用程序使用expo cli。我想我现在一般都理解了,但我读过的所有文章似乎都说你应该检查用户令牌是否存在于AsyncStorage中,如果它确实存在,那么就把用户带到Home/Account页面并跳过登录,但令牌永远不会与特殊密钥或任何东西进行比较。下面是一个代码的例子,它说在文章中返回…

return (
<AuthContext.Provider value={authContext}>
<Stack.Navigator>
{state.userToken == null ? (
<Stack.Screen name="SignIn" component={SignInScreen} />
) : (
<Stack.Screen name="Home" component={HomeScreen} />
)}
</Stack.Navigator>
</AuthContext.Provider>
)

我正在构建一个每月会员费的应用程序,所以我需要检查userToken是否存在,如果它确实将其发送到后端进行验证,然后返回用户数据,就像下面的代码一样,因为这是我为使用react的网站版本所做的,如果userToken不存在,那么我只是将它们发送到登录页面?

const [isAuthenticated, setIsAuthenticated] = useState(false)
const [userData, setUserData] = useState(null)
const handleUserToken = () => {
// fetch call that sends userToken to be validated and returns {userData, isAuthenticated}
setSomeState(userData)
return isAuthenticated
}
state.userToken == setIsAuthenticated(false) ? setIsAuthenticated(handleUserToken())
return (
<AuthContext.Provider value={authContext}>
<Stack.Navigator>
{!state.isAuthenticated ? (
<Stack.Screen name="SignIn" component={SignInScreen} />
) : (
<Stack.Screen name="Home" component={HomeScreen} />
)}
</Stack.Navigator>
</AuthContext.Provider>
);

希望这个例子是有意义的,我将userData传递到组件使用'useContext'以及。

是的,如果你想要更多的限制,你应该检查。非根设备不能读写AsyncStorage存储的数据,但根设备可以。检查这个https://medium.com/dev-genius/security-in-react-native-applications-asyncstorage-4a619d923638

但是用服务器验证用户令牌会增加应用程序的打开时间。相反,我建议使用其他加密存储技术。

最新更新