У меня проблемы с Jwt и особенно с ошибкой "Invalid Signature".
Я генерирую токен после входа пользователя в систему (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 передается во внешнем запросе (носитель авторизации) и совпадает с тем, который был создан сразу после входа в систему, согласно отладчику.
Но, к сожалению, у меня по-прежнему возникает ошибка {"message": "UnauthorizedError: неверная подпись"} после каждого запроса к бэкэнду nodejs.
Может ли кто-нибудь сказать мне, что я делаю неправильно, чтобы иметь неверную подпись?
Заранее спасибо