JWT,使用存储在DB中的动态密钥

时间:2018-04-05 07:42:17

标签: authentication jwt express-jwt

如果我采用以下方法,我需要一些关于未来陷阱和问题的建议。

我正在使用JWT,当他/她更改密码时,我需要使用户的所有先前令牌过期。

我为每个用户制作一个唯一密钥的方法是连接我的密钥和用户密码(config.jwtSecretKey + user.password)以生成动态密钥。 一旦用户更改了他/她的密码,密钥就会改变,因此所有以前的密钥都将无效。

一切正常但是为了验证每个令牌,我需要一个DB调用来获取密码。

请建议我如何改进这一点或以何种方式做同样的事情。

1 个答案:

答案 0 :(得分:2)

你的方法非常好,因为它适用于KISSy

  

通过使用动态密钥的一些内存缓存,可以减少数据库查询。

此外,您可以将动态密钥从password hash更改为some random hash以减少冲突。它将减少许多安全威胁。