【发布时间】:2019-06-29 02:43:56
【问题描述】:
我在这里检查了所有类似的问题,但没有一个是我需要的。 我正在保护我的应用程序中的路线,并在每个请求中发送 JWT,这里一切都很好。 问题是当 JWT 过期时,我需要知道如何刷新该令牌并保持用户登录,而不是注销用户。
每个人都在谈论创建一个“中间件”来处理这个问题,但没有人说如何创建那个中间件以及其中包含什么?
那么,这样做的最佳做法是什么?我应该在发送任何请求之前检查 JWT 的到期日期吗?还是我应该等待“401”响应然后尝试刷新令牌(我不知道该怎么做),或者究竟是什么?
如果有人在 Github 上有这样的中间件或包或项目的工作示例,可以帮助我解决这个问题,那就太好了。
我只对流程的前端部分感兴趣,从 react 发送什么,我应该期望接收什么以及如何处理它。
【问题讨论】:
-
也许这个答案会给你一些有用的信息:JWT-example
-
如果您希望令牌不过期,请设置可能的最长过期时间(在某些情况下,您可以使用 '0' 表示无限期 - 但我认为至少在 jsonwebtoken 中省略了这一点)并使用某个例程刷新它。要刷新令牌,您的 API 需要一个端点来接收有效的、未过期的 JWT,并返回具有新设置的过期时间的相同签名 JWT。
标签: reactjs react-redux jwt axios redux-thunk