Security 让用户登录以永久响应本机应用程序
我正在尝试找出一种最好的方法,让用户在登录后一直登录到我的RN应用程序,直到他们卸载该应用程序为止 我正在使用一个Node/Express后端,它在每个请求中都接受JWT,目前我唯一的计划是在登录时发送一个永不过期的JWT,并使用AsyncStorage永久存储它 这让我本能地感到不安全,但我在安全和代币方面不是专家。目前我正在使用Expo来启动我的RN应用程序,但将来我计划“弹出”它,一旦弹出,我可以使用react native keychain更安全地存储它,但它仍然是一个永不过期的JWT 我的spotify应用程序从不要求我重新登录,所以我知道我所做的并不疯狂Security 让用户登录以永久响应本机应用程序,security,express,react-native,jwt,Security,Express,React Native,Jwt,我正在尝试找出一种最好的方法,让用户在登录后一直登录到我的RN应用程序,直到他们卸载该应用程序为止 我正在使用一个Node/Express后端,它在每个请求中都接受JWT,目前我唯一的计划是在登录时发送一个永不过期的JWT,并使用AsyncStorage永久存储它 这让我本能地感到不安全,但我在安全和代币方面不是专家。目前我正在使用Expo来启动我的RN应用程序,但将来我计划“弹出”它,一旦弹出,我可以使用react native keychain更安全地存储它,但它仍然是一个永不过期的JWT
但是有更好的方法吗?您不应该使用长期JWT,因为如果使用的密钥很弱或很短,它们很容易被破解 有一些库可以帮助您跟踪可以破解JWT的暴力持续时间,例如 因此,您应该使用Expo SDK中已有的。 IOS值使用存储,Android值存储在中,并使用加密
如果使用令牌的API中出现错误,您只需调用拦截器重新验证或刷新即可。好的,所以我不知道Expo有一种安全的存储值的方法,我肯定会切换到该方法。我不明白最后一点,什么是拦截器,我如何“刷新”JWT?拦截器拦截api调用。它在api调用之前或之后捕获
请求
和响应
对象。如果api调用失败,您可以调用刷新令牌或重新验证的api。你可以看看啊,响应拦截器,我可以在Axios中这样做,我想我只需要一个端点,它可以接收过期的令牌并发回一个新的令牌。如果它总是从过期的令牌返回一个新的令牌,那么这与永不过期的令牌有何不同?与长期生成的jwt相比,它每次都会基于负载生成一个新的哈希,这将很难破解