【发布时间】:2020-02-02 19:30:28
【问题描述】:
我正在开发 MEAN 堆栈应用程序。对于会话身份验证,我使用了 express-jwt。
我的代码与 express-jwt 令牌配合得很好,但是当我注销时,我想删除 jwt 令牌/在黑名单中添加令牌。
因此,当我将 express-jwt-blacklist 与 jwt 令牌一起应用时,它会引发错误。错误:JWT missing tokenId claimsub
我的工作代码
=> In middleware / config file
const expressJWT = require("express-jwt");
CONFIG.JWTTOKENALLOWACCESS = expressJWT({
secret: CONFIG.JWTTOKENKEY,
userProperty: 'payload'
});
=> In routing file
router.route("/get-post-list").get(CONFIG.JWTTOKENALLOWACCESS, PostCtrl.getPostList);
我的不工作代码(应用 express-jwt-blacklist 后)
=> In middleware / config file
const expressJWT = require("express-jwt");
const blacklist = require('express-jwt-blacklist');
CONFIG.JWTTOKENALLOWACCESS = expressJWT({
secret: CONFIG.JWTTOKENKEY,
userProperty: 'payload',
isRevoked: blacklist.isRevoked
});
=> In routing file
router.route("/get-post-list").get(CONFIG.JWTTOKENALLOWACCESS, PostCtrl.getPostList);
错误抛出
error: "JWT missing tokenId claimsub"
请帮我解决这个问题。
【问题讨论】:
-
您的 JSON 中似乎缺少键值对。
-
如果 JSON 中缺少键值对,那么在应用 express-jwt-blacklist 之前它应该不起作用。但它在不应用 express-jwt-blacklist 的情况下效果很好
标签: javascript node.js express express-jwt jwt-auth