Skip to main content

支持黑名单的JWTs

一段解释

按照设计, JWTs(JSON Web Tokens)是完全无状态的, 因此, 一旦有效令牌由颁发者签署, 应用程序就可以验证该令牌是否真实。这导致了安全的问题, 这里,泄漏的令牌仍可使用且无法撤销, 因为只要问题令牌提供的签名与应用程序所期望的相匹配, 签名就仍然有效。 因此, 在使用JWT身份验证时, 应用程序应管理过期或已吊销令牌的黑名单, 以便在需要吊销令牌的情况下保留用户的安全性。

express-jwt-blacklist 示例

在Node.js项目中,使用express-jwt,并运行express-jwt-blacklist的例子

const jwt = require('express-jwt');
const blacklist = require('express-jwt-blacklist');

app.use(jwt({
secret: 'my-secret',
isRevoked: blacklist.isRevoked
}));

app.get('/logout', function (req, res) {
blacklist.revoke(req.user)
res.sendStatus(200);
});

其他博客作者说什么

摘自博客Marc Busqué:

...在JWT之上添加一个吊销层(revocation layer), 即使它意味着失去其无状态性质。