如何让redux商店听取cookie?

时间:2017-09-19 18:07:49

标签: reactjs cookies redux react-redux

我有一个带有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方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

我只需在将sessionValidUntil指定为true时将一些日期时间值保存在Redux isAuthenticated中。将此新redux值设置为当前时间+ 2小时。

然后,无论您当前正在检查isAuthenticated,我都会检查一个看起来像这样的新功能;

(reduxState) => {
    return (reduxState.isAuthenticated && new Date() < reduxState.sessionValidUntil);
}