node.js - 节点js jwt认证
问题描述
所以我最近使用jwt在我的服务器中创建了一个身份验证系统,一切正常,但是当我想创建一个注销路由时,我意识到了一些事情:
jwt不能被取消验证,而是我所做的是将这些令牌与登录用户的 id 一起存储在 mongodb 中,因此每次用户登录时,令牌都会保存到数据库中,但在不同的集合中使用sha256算法进行哈希处理。
-我仅将其用于验证目的,因此,例如,当我们点击受保护的路由时,我们会检查我们拥有的当前令牌(来自标头或 cookie)在数据库中是否有效,然后如果找到它,我们使用jwt.verify()
和验证它其他验证步骤
我基本上将令牌列入白名单。
好处:
-每当我想注销用户时,我只需从数据库中删除该令牌
-或者如果我想注销具有此帐户的所有用户,则删除具有当前配置文件 ID 的所有令牌...
现在这是我的问题:
- 我的方法可行吗?
- 这对安全性有害吗(请记住,令牌是散列存储的)?