是否有用于处理令牌刷新的本机的本地库?或者我需要做一个刷新令牌的时间表?如果是,iOS允许在后台执行计划?或者我可以检查每个服务器响应,如果令牌有效,如果不刷新它?
实施此方法的最佳方法是什么?
答案 0 :(得分:3)
当我遇到这个问题时,我想到了两种使用API处理令牌刷新的策略:
您的服务器应发送INVALID_TOKEN_ERROR
时刻,您可以自行制作refreshToken(credentials)
。
我觉得有趣的一种技术是以与本文类似的方式填充fetch
:
Handling Failed HTTP Responses With fetch()
我现在在我的应用上做的是在应用开始时刷新我的令牌,无论令牌的生存时间如何。因此,除非您的用户将应用程序打开的时间超过您的生存时间,否则您不应遇到任何问题。
我使用redux-persist加载状态回调挂钩app app。
如果您使用fbsdk
:
import { AccessToken } from 'react-native-fbsdk'
[...]
AccessToken.refreshCurrentAccessTokenAsync()
.then((FBTokenObject) => {
let FBToken = FBTokenObject.accessToken
[refresh your own API token using FBToken]
)
如果您使用电子邮件和密码策略,则应查看react-native-keychain,以安全的方式将凭据保存在设备上。
我没有在API错误上实现令牌刷新,因为我的令牌的生存时间是5天,我认为第二个策略目前还不够好。但如果我的令牌的生存时间短于2天,我肯定会这样做。
您还可以通过检查您的生活时间来改善效果,并根据价值决定是否要刷新令牌,但在我看来,这并不是一个好处。