首页 > 解决方案 > 让用户永远登录到 React Native 应用程序

问题描述

我正在尝试找出让用户在登录后保持登录到我的 RN 应用程序的最佳方法,直到他们卸载该应用程序。

我正在使用一个 Node/Express 后端,它接受每个请求的 JWT,我目前唯一的计划是在登录时发送一个永不过期的 JWT,并使用 AsyncStorage 永久存储它。

这本能地感觉不安全,但我不是安全和令牌方面的专家。我目前正在使用 Expo 来启动我的 RN 应用程序,但将来我计划“弹出”它,一旦我这样做,我可以使用 react-native-keychain 更安全地存储它,但它仍然是一个永不过期的 JWT。

我的 spotify 应用程序从不要求我重新登录,所以我知道我正在尝试做的事情并不疯狂。

但是有更好的方法吗?

标签: securityexpressreact-nativejwt

解决方案


您不应该使用长期JWT ,因为如果使用的密钥很弱或很短,它们很容易被破解。

有一些可用的库可以帮助您跟踪可以破解JWTjwt-cracker的暴力破解持续时间,例如c-jwt-cracker.

因此,您应该使用Expo SDK中已有的SecureStoreIOS值使用钥匙串服务存储,Android值存储在SharedPreferences中,并使用Android 的 Keystore 系统加密。

如果使用令牌的API中有错误,您可以简单地调用来重新验证或使用拦截器刷新它


推荐阅读