JWT-Jason Web令牌和刷新令牌

时间:2020-04-11 17:36:40

标签: authentication jwt

在我的应用程序中(节点js和angular作为Rest API),我使用jasonwebtoken包进行身份验证。

用户登录后,我将创建一个有效期为30分钟的访问令牌和一个没有到期日期的刷新令牌。

刷新令牌对于每个用户唯一地保存在我的数据库中,并在注销时被删除。 (刷新过程包括令牌的验证及其在数据库中的匹配)。 我还有一个自动注销功能,访问令牌将在一个小时后自动注销(因为我只会刷新访问令牌,如果它已过期-这意味着如果我在到期前1秒钟调用服务器,用户仍然会注销)。

在页面刷新之类的情况下,刷新和访问令牌也都保存在浏览器local storage中,这会导致自动登录(local storage在注销时被删除)。

由于这对我来说是一个新主题,并且由于我没有找到关于自动登录和自动注销的处理方法的具体信息,因此我有一些不清楚的地方:

我确实找到了有关设置到期日期的JWT (JSON Web Token) automatic prolongation of expiration问题,但是它并没有说明自动登录/注销以及诸如银行之类的重要应用程序。

  1. 刷新过程是否稳定?我读了很多刷新令牌的黑名单,但看不到必须保存所有令牌的好处
  2. 我的自动注销机制是否应构建?我应该对此进行修改吗?可以在访问令牌过期一小时后自动注销吗?
  3. 如果用户关闭浏览器,则自动注销将不起作用,并且刷新令牌将一直有效,直到用户再次登录-我该怎么做才能使其正常工作?如果我愿意与session storage合作 令牌仍不会从数据库中删除。
  4. 如果我有需要某些用户信息(例如其数据库ID)的服务器呼叫,我仍然希望在请求正文/查询参数中获取它-是否可以,还是应该使用有效负载来自访问令牌?

谢谢

0 个答案:

没有答案