bcrypt не сравнивает jwt токены
В базе данных находится зашифрованный bcrypt jwt токен и когда я пытаюсь сравнить его с новым созданным токеном он всегда возвращает true, но при этом если я буду сравнивать сгенерированный jwt токен не на моем сайте или если просто что-то другое напишу сравнение отрабатывает правильно.
Как я все это дело проверяю: Я отправляю post запрос через postman, вот код, который принимает этот запрос:
var data = req.body;
createToken(data.mail);
async function createToken(login){
var refreshToken = jwt.sign({login}, process.env.JWT_SECRET, {expiresIn: '1m'});
var hashrefreshToken = await bcrypt.hash(refreshToken, 3);
await usersdb.updateOne({mail: login}, {$set: {verifytoken: hashrefreshToken}});
res.cookie('id', refreshToken, {
httpOnly: true,
maxAge: 60 * 1000 * 60
});
res.send('kyky');
}
res.end;
Этот код выдает мне токен в cookie, шифрует его и заносит в базу данных, дальше я отправляю запрос по другой ссылке, где я беру cookie из базы данных и сравниваю его с cookie пользователя:
var data = req.body;
var finduser = await usersdb.findOne({mail: data.mail});
var resultbcrypt = await bcrypt.compare(req.cookies.id, finduser.verifytoken);
if(resultbcrypt){
console.log('Сходится');
}else{
console.log('Не сходится');
}
res.send(req.cookies.id);
res.end;