Javascript 在react native with redux saga中实现令牌刷新
我有一个Javascript 在react native with redux saga中实现令牌刷新,javascript,react-native,oauth-2.0,react-redux,redux-saga,Javascript,React Native,Oauth 2.0,React Redux,Redux Saga,我有一个reduxsaga中间件来促进异步存储操作,所有API调用都是通过sagas进行的。现在实现了OAuth2,我想检查我的令牌是否过期,然后在API调用发生之前用刷新令牌刷新它。问题是我无法找到一个解决方案来截取这段传奇故事。MyExpireSet值处于存储状态,应使用它来决定访问令牌是否过期 我想要构建的内容 一个拦截器,将在每个传奇之前运行,允许访问redux状态并触发redux操作。因此,我可以从存储访问expiresAt,将其与当前日期时间进行比较,然后如果令牌已过期,则触发刷新a
reduxsaga
中间件来促进异步存储操作,所有API调用都是通过sagas进行的。现在实现了OAuth2
,我想检查我的令牌是否过期,然后在API调用发生之前用刷新令牌刷新它。问题是我无法找到一个解决方案来截取这段传奇故事。MyExpireSet
值处于存储状态,应使用它来决定访问令牌是否过期
我想要构建的内容
一个拦截器,将在每个传奇之前运行,允许访问redux状态并触发redux操作。因此,我可以从存储访问expiresAt
,将其与当前日期时间进行比较,然后如果令牌已过期,则触发刷新api以刷新它,然后分派存储操作,然后真正的saga可以使用更新的令牌
目前发现的方法:
感谢您的帮助。此外,如果我对手头的问题思考方向不正确,请告诉我正确的解决方法。可能没有传奇。我建议使用单独的生成器功能,它将在后台刷新令牌。该过程如下所示:
login
。它将调度LOGIN\u SUCCESS
操作以在Redux中存储令牌refreshToken
将监听LOGIN\u SUCCESS
操作并启动计时器。当计时器过期时,它将刷新令牌或为saga分派操作,以执行令牌刷新李>
LOGIN\u SUCCESS
将被调度,这将使我们进入步骤2作为附加检查,如果令牌刷新失败,您可以实施私有路由以自动注销用户。感谢这种方法,但这将使身份验证成为滑动窗口,因此令牌永远不会过期。我也想做一些不活动的事情。因此,如果用户在特定的时间段内未触摸应用程序,并且令牌过期,则您提议的计时器不应自动刷新该应用程序。但是是的,谢谢你的投入。我有一些想法。将实施并提出答案。