6 javascript authentication token node.js jwt
我正在使用 JWT 创建一个 node.js 后端应用程序。对我来说,要求很简单,即授权令牌不应有任何到期时间。但是当用户更改密码时,我在使 JWT 无效的过程中遇到了问题。
当用户更改他的密码时,我将创建一个新的 JWT 令牌,并删除旧令牌,但用户仍然可以使用他的旧 JWT 令牌(来自其他登录的设备)并可以访问应用程序。
那么谁能告诉我如何避免这种情况?
小智 15
JWT 的 exp 声明是可选的。如果令牌没有它,则认为它没有过期
根据https://www.npmjs.com/package/jsonwebtoken的文档,expiresIn 字段也没有默认值,因此只需省略它即可。
var token = jwt.sign({email:'sivamanismca@gmail.com',role:'User'}, "Secret", {});
Run Code Online (Sandbox Code Playgroud)
对我来说似乎是一个熟悉的问题,我已经回答了类似的问题Best Practices to Invalidate a JWT Token。
所以解决你的问题的步骤如下,
当用户登录时,在他的用户数据库中创建一个没有过期时间的登录令牌。
因此,在使 JWT 无效时,请按照以下步骤操作,
所以基本上你需要将令牌存储在用户的数据库中并在失效时使用它。简单的 :)
| 归档时间: |
|
| 查看次数: |
19422 次 |
| 最近记录: |