最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

JWT无效令牌

IT培训 admin 15浏览 0评论

JWT无效令牌

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

到现在一切正常,并且不使用db

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

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

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

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

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

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

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

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

抱歉英语不好

回答如下:

更好的解决方案是将令牌列入黑名单。当用户注销时,您将该令牌放入黑名单,例如redis缓存。

[每当有人登录时首先检查令牌是否在您的Redis缓存中,否则,请继续,否则您将拒绝。

JWT无效令牌

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

到现在一切正常,并且不使用db

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

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

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

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

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

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

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

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

抱歉英语不好

回答如下:

更好的解决方案是将令牌列入黑名单。当用户注销时,您将该令牌放入黑名单,例如redis缓存。

[每当有人登录时首先检查令牌是否在您的Redis缓存中,否则,请继续,否则您将拒绝。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论