如何在React/Redux中Session(JWT)到期时发出警报

Tuo*_*nen 5 javascript session single-page-application reactjs redux

在React/Redux应用程序中有哪些方法可以提醒用户有关过期的会话?

服务器使用JWT令牌对用户进行身份验证,并且React确实不知道此类令牌的存在,浏览器会自动处理它.在获取和发布Redux的情况下,设置数据或状态错误.

是尝试访问API端点时被动检查响应的典型方法,使用expires字段设置客户端超时,主动确保会话的有效性或其他一些技术?我特别关注用户所做的未保存更改,并希望尽快通知用户有关已结束的会话.

web*_*deb 3

我当前的方法是将jwt存储在localStorage中,当应用程序启动时,我正在加载令牌,尝试使用令牌加载用户数据,如果失败,只需重定向到/login

然后我只在 api 模块中使用 jwt,根本不在商店中使用。

我的 Api 模块根据请求知道何时使用令牌,何时不使用

如果 api 模块识别出身份验证失败,它还会从 localStorage 中删除令牌。因此下次无法加载它。

我的 api 模块也与 redux 分离,知道何时使用 jwt,何时不使用。

为了使这项工作更加抽象,我创建了一个中间件,如果有效负载为 anerror并且值,它会对每个操作做出反应Not Authenticated

如果服务器响应因身份验证而失败,这就是我在 api 模块中抛出的错误。只是actionCreator分派错误catch并中间件对其做出反应。

所以实际上这取决于你如何做到这一点,我所说的所有代码大约是 100 LOC 左右..只是一些处理这些事情的方法。

  • 我猜想,很多人都在使用相同的中间件机制进行身份验证,如果您展示您的中间件机制可能会有所帮助。 (2认同)