【发布时间】:2019-08-04 08:31:59
【问题描述】:
我在使用 Jwt 时遇到问题,尤其是“无效签名”错误。
我在用户登录后生成一个令牌(jsonwebtoken)。
userSchema.methods.generateJwt = function() {
var expiry = new Date();
//expiry.setDate(expiry.getDate() + 7);
expiry.setDate(expiry.getDate() + 2);
return jwt.sign({
_id: this._id,
username: this.username,
name: this.lastname,
exp: parseInt(expiry.getTime() / 1000),
}, process.env.SRCT, {
algorithm: 'HS256'
});
}
然后我正在创建一个 express-jwt 中间件以将其添加到路由:
var auth = jwt({
secret: process.env.SRCT,
userProperty: 'payload'
});
这样使用:
router.get('/', auth, ctrlUser.slash);
根据调试器,我创建的 JWT 在前端请求(授权承载)中传递,与登录后立即创建的相同。
但不幸的是,在每次向 nodejs 后端请求之后,我仍然遇到错误 {"message":"UnauthorizedError: invalid signature"}。
有人能告诉我我做错了什么导致签名无效吗?
提前致谢
【问题讨论】:
标签: node.js angular express jwt