我有一个带有react和redux的应用程序。
我想让我的redux商店听取cookie。
每当cookie过期后,在一段时间后,我想调度一个动作,它也会更新相应的商店值。
例如 每当用户登录该站点时,假设我们正在生成一个身份验证令牌,我们希望将其存储在cookie中并设置2小时的到期时间。
一旦2小时完成,我想发送一个动作,它将更新redux商店数据" isAuthenticated"为假
减速器可能看起来像这样
export const user(state ={}, action)
{
case "cookie_expired":
return {...state, isAuthenticated: false}
}
这样我就可以拥有单一的真实来源,即还可以收听cookie的redux商店
试过 使用setInterval,我可以查看cookie的可用性,但这将是一种解决方法。
是否有任何redux方法来实现这一目标?
答案 0 :(得分:0)
我只需在将sessionValidUntil
指定为true时将一些日期时间值保存在Redux isAuthenticated
中。将此新redux值设置为当前时间+ 2小时。
然后,无论您当前正在检查isAuthenticated
,我都会检查一个看起来像这样的新功能;
(reduxState) => {
return (reduxState.isAuthenticated && new Date() < reduxState.sessionValidUntil);
}