У меня есть приложение узла js. Мне нужно получить секретный ключ из сгенерированного токена для использования моего метода индивидуальной проверки. Есть ли какой-нибудь метод токена декодирования или отрыв секретного ключа от метода токена для JWT? Поскольку в настоящее время я предоставляю личный токен, отправляя адрес электронной почты в заголовок, мне нужен метод, который может извлечь секретный ключ из токена, чтобы предотвратить это. Вот мой код.
Вот моя часть создания токена в разделе Код логина: (Если пароль верен:)
const secretKey= user.email;
const token = jwt.sign({
email:user.email,
password: user.password
},
secretKey,
{
expiresIn :"2h"
}
)
return res.status(200).send({ message: 'success', token: token});
А затем в промежуточном программном обеспечении я использую этот код:
const jwt = require('jsonwebtoken');
module.exports = (req, res, next) => {
try {
const token = req.headers.authorization.split(" ")[1];
const decodedToken = jwt.verify(token, req.headers.user);
req.userData = decodedToken;
next();
}catch(error) {
return res.status(401).send({
message: 'Auth failed'
});
}
И мой app.js:
const checkAuth = require('../middleware/checkauth');
router.get('/api/company',checkAuth,companyController.list);
РЕДАКТИРОВАТЬ: Я узнал, что в JavaScript нет функции, которая может декодировать секретный ключ токена. Секретный ключ создается с помощью специальных алгоритмов.