JWT无效令牌

时间:2020-05-11 10:57:00

标签: javascript node.js express jwt

  1. 我在mongodb中使用express js
  2. 使用jsonwebtoken进行身份验证
  3. 成功登录后,我将令牌放入cookie
  4. 对于传入的请求数据,我检查cookie中的令牌。如果令牌有效,我 重新生成令牌并将新令牌放入cookie和响应中 请求的数据(就像为每个请求刷新令牌一样。)

现在一切正常,无需使用数据库

我想在没有db的情况下使旧令牌无效,但是似乎不可能这样做,如下所述。

  1. 为了成功登录,我使用jwt令牌设置了cookie。也存储 该令牌也位于数组中,而用户的信息文档也位于db中。
  2. 对于每个数据请求,我都会验证令牌并检查令牌 是否存在于数组匹配中,如果匹配,则从中删除该标记 数组生成新令牌将新令牌放入数组和用户信息 db中的文档,再次在cookie和响应数据中设置新令牌。

上述步骤也可以正常工作,并且我能够使旧令牌无效

但是,如果服务器关闭怎么办?如果服务器关闭每个丢失的用户的所有令牌,并且所有用户都被强制注销

为防止该问题,如果令牌与令牌匹配,我会检查db中用户信息文档中的令牌

通过执行此步骤,无需进入db并检查有效令牌。仅当令牌不存在于数组中时才进行DB查找。

我的问题是关于安全性和速度性能

这个实现好的问题吗?随着用户的增加,速度性能将是良好的,并且每个用户的阵列中有如此多的令牌。意味着需要循环所有令牌以匹配数组中的令牌。

对不起,英语不好

0 个答案:

没有答案