我正在使用Nextjs、Strapi CMS和Redux创建一个Web应用程序,并使用Cookie。但我必须检查每次请求时token是否未过期,如果已过期,我将isAuthenticated设置为false。
useEffect(() => {
if (isAuthenticated) {
dispatch(fetchUserDetails());
}
}, [isAuthenticated]);
但是isAuthenticated只针对登录和注销,我想知道的是,如何在token过期时将用户从状态中删除,是否应该设置一个从用户登录时注销用户的日期。
如果是这样,如何安排一个日期注销用户时,令牌到期与nexjs和strapi cms或建议检查令牌是否仍然是活跃的?
1条答案
按热度按时间cotxawn71#
不确定如果令牌过期,你是否真的需要手动注销用户,因为如果你试图用不正确的令牌访问受保护的strapi路由,你会收到403,所以基本上你可以从任何操作中注销,只要知道它收到403。
关于在“日期”上分派动作,我不会在这里使用日期这个词,因为问题是服务器有它自己的时钟时区等等,客户端也有自己的时钟和timzeone。处理这个问题的一般规则是避免所有的成本...
所以关于quetstion的redux部分,我已经有一年没有做过任何reducer/action creators了,在现代redux toolkit中,伪代码看起来像这样(注意计时器代码更多的是一个概念,只是在我的脑海中写出来的):
和一个createStore部件:
不确定它是否适用于你的情况,但是这是我可以从描述中得出的结论。
希望有帮助!