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