#javascript #bcrypt
#javascript #bcrypt
Вопрос:
refreshToken
это строка, которая проверяется, соответствует ли она кодировке.
currentHashedRefreshToken
в настоящее время является закодированным токеном.
isRefreshTokenMatching
это логическая переменная, которая сравнивает, соответствует ли закодированная строка bcrypt.
{
refreshToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiOWRiMTcwMmMtNDkyYy00MTJmLTkyM2QtM2Y5MWQyYzk0NTNjIiwicm9sZSI6IkNVU1RPTUVSX1JPTEUiLCJpYXQiOjE2MDU0NzM4NTcsImV4cCI6MTYwNTQ3NzQ1N30.o9nEeH4V7PZ61jWRG7-7epH79Vi9HJQWorvx5A37q4o'
}
{
currentHashedRefreshToken: '$2b$10$ZYsrh1xu3icprkvRI0OksuBx6hrfOs9lmO7oZ2qqM6pFCLDiVaQrq'
}
{ isRefreshTokenMatching: true }
второй:
{
refreshToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiOWRiMTcwMmMtNDkyYy00MTJmLTkyM2QtM2Y5MWQyYzk0NTNjIiwicm9sZSI6IkNVU1RPTUVSX1JPTEUiLCJpYXQiOjE2MDU0NzUzOTgsImV4cCI6MTYwNTQ3ODk5OH0.iHRhFmtgRbsgTv9uC7VDaT_bU1tHxdlCjHDCjfmxeKA'
}
{
currentHashedRefreshToken: '$2b$10$ZYsrh1xu3icprkvRI0OksuBx6hrfOs9lmO7oZ2qqM6pFCLDiVaQrq'
}
{ isRefreshTokenMatching: true }
почему оба токена обновления обнаруживают, что они совпадают, если они разные и разные?
Вот мои методы хеширования и декодирования:
/**
* generate hash from password or string
* @param {string} password
* @returns {Promise<string>}
*/
static async generateHash(password: string): Promise<string> {
return bcrypt.hash(password, 10);
}
/**
* validate text with hash
* @param {string} password
* @param {string} hash
* @returns {Promise<boolean>}
*/
static async validateHash(password: string, hash?: string): Promise<boolean> {
return bcrypt.compare(password, hash || '');
}
Комментарии:
1. опубликованный вами код ничего не делает с указанными вами данными, которые предположительно связаны с ним. можете ли вы опубликовать более полный пример того, что вы пытаетесь сделать здесь?
2.
currentHashedRefreshToken
используется ли хэшированный пароль при созданииrefreshToken
— конечно, они будут одинаковыми, а токены будут разными, поскольку они имеют разное время выпуска и истечения срока действия3. @JaromandaX итак, у меня есть два разных refreshToken и один currentHashedRefreshToken — так это нормально, что две другие строки имеют одинаковое значение для bcrypt?
4. ни один из показанных вами кодов не имеет никакого отношения к
refreshToken
… кроме того факта, что на самомcurrentHashedRefreshToken
деле (я предполагаю, поскольку я не могу его расшифровать) хэшированный пароль, используемый для созданияrefreshToken
— значениеrefreshToken
не имеет ничего общего сisRefreshTokenMatching
на основе кода, который вы показали — опять же, вы будетенужно показать, какisRefreshTokenMatching
вычисляется, если вам нужна дополнительная информация5. Кроме того, это похоже на TypeScript, а не на JavaScript, хотя я не думаю, что разница имеет отношение к вопросу.