我最近决定尝试制作一个通用的应用程序,并支持 ios、android 和 web 的 expo。 我知道一路上会有很多麻烦..但我从一开始就发现了最大的问题。 我可以看到,在哪里存储应用程序的访问令牌(例如安全存储或 asyncStorage)的选项很少,我只是找不到使用 cookie 或任何客户端存储来放入访问令牌的方法。
由于我的应用程序本质上应该具有保持登录的功能,这对于网络客户端来说将是一个关键问题。
有人知道这个问题有一个好的解决方法吗,或者有没有办法让用户使用设备/IP 详细信息从服务器端登录..?
请大家赐教!
自 v1.9.0 起,asyncStorage 中提供了 Web 支持。
因此您可以在最新版本的 asyncStorage 中使用它。
我已经成功地使用 AsyncStorage 做到了这一点。
import AsyncStorage from '@react-native-community/async-storage';
/// Then inside your component make an asynchronous set
await AsyncStorage.setItem(['tokenName', tokenValue]);
对于 android 和 ios,您应该使用 ExpoSecure Storage。 对于网络,我目前只能依赖普通的存储,但这似乎不安全。 一种选择是将其保存在 cookie 中,但这是我不太喜欢的东西。