在React / Redux应用程序中有哪些方法可以提醒用户有关过期的会话?
服务器使用JWT令牌对用户进行身份验证,并且React确实不知道此类令牌的存在,浏览器会自动处理它.在获取和发布Redux的情况下,设置数据或状态错误.
是尝试访问API端点时被动检查响应的典型方法,使用expires字段设置客户端超时,主动确保会话的有效性或其他一些技术?我特别关注用户所做的未保存更改,并希望尽快通知用户有关已结束的会话.
最佳答案
我当前的方法是将jwt存储在localStorage中,当应用程序启动时,我正在加载令牌,尝试使用令牌加载用户数据,如果失败,只需重定向到/ login
然后我只在api模块中使用jwt,而不是在商店中.
我的Api模块根据请求知道何时使用令牌,何时不知道
如果api模块识别出认证失败,它也会从localStorage中删除令牌..因此下次无法加载.
我的api模块也与redux分开,知道何时使用jwt,何时不使用.
为了使这项工作更抽象,我创建了一个中间件,如果有效负载是一个错误并且值未经过身份验证,它会对每个操作做出反应
如果服务器响应由于auth而失败,这是我在api模块中的错误. actionCreator只是在catch中调度错误,中间件对它做出反应.