Я использую библиотеку jsonwebtoken для подписи и создания JWT, которые будут использоваться для безопасности API,
Код выглядит нормально, когда я пытаюсь проверить подпись с действительным JWT_SECRET_TOKEN
, и выдает ошибку, когда я использую неправильный JWT_WRONG_TOKEN
Однако, когда я копирую токен и помещаю его в https://jwt.io/,
Он показывает Signature Verified
для любого секрета, который я ввел.
Ниже приведен мой код -
const jwt = require('jsonwebtoken');
const JWT_SECRET_TOKEN = 'secret';
const JWT_WRONG_TOKEN = 'test';
const DATA = 'My Test Data';
// Equivalent to 1 Hour
// Data should be an Object to be signed
let token = jwt.sign({data: DATA}, JWT_SECRET_TOKEN, { expiresIn: 60 * 60 * 1 });
console.log("Encoded token => ",token);
console.log("token => "+JSON.stringify(jwt.decode(token)));
jwt.verify(token, JWT_SECRET_TOKEN, function (err, decoded) {
//jwt.verify(token, JWT_WRONG_TOKEN, function (err, decoded) {
if (err) {
console.log('Error => ', err);
if (err.name === 'TokenExpiredError') {
console.log("AUTH_EXPIRED");
}
else if (err.name === 'JsonWebTokenError') {
console.log("JWT_ERROR");
}
else if (err.name === 'NotBeforeError') {
console.log("JWT_NOT_ACTIVE");
} else {
console.log("ERR_ON");
}
} else {
console.log('Success => ', decoded)
}
})
Ссылка -
1. https://www.npmjs.com/package/jsonwebtoken
2. https://jwt.io/
Что я делаю не так?
Как мне решить?