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;


Ответы (0 шт):