#javascript #node.js #jwt
#javascript #node.js #jwt
Вопрос:
У меня есть пользовательская модель, в которой я зашифровал электронную почту и пароли с помощью bcrypt в nodejs. что я хочу сделать, это войти в систему пользователя, пожалуйста, если кто-нибудь поделится каким-либо примером того, как войти, любезно дайте мне знать, а затем спасибо.
Комментарии:
1. в идеале вы не шифруете электронную почту, шифруются только пароли
Ответ №1:
Вы должны использовать ту же концепцию, что и для сравнения хэшированного пароля с использованием bcrypt.
Вот пример кода
/**
* @method hashString
* @description Hashes a plain text string
* @param {String} string - The plain text string to be hashed
* @returns {string} The hash string
*/
static hashString(string) {
return bcrypt.hashSync(string, 10);
}
/**
* @method verifyHash
* @description compares plain strings to hashed strings for authentication
* @param {string} plainTextString - The plain text string to be verified
* @param {string} hashedString - Stored hashed string to compare against
* @returns {boolean} Booelean indicating success or failure
*/
static verifyHash(plainTextString, hashedString) {
return bcrypt.compareSync(plainTextString, hashedString);
}
// You can try this below
verifyHash(password, user.password))
verifyHash(email, user.email))
Комментарии:
1. Спасибо @martins, но откуда я получаю того пользователя, которого вы использовали здесь VerifyHash (пароль, user.password)) VerifyHash (электронная почта, user.email))
2. User.email или user.password следует просто заменить на фактический адрес электронной почты и пароль для использования, которые вы пытаетесь сравнить. Это может исходить из тела запроса, когда пользователь вводит свои данные.
3. Спасибо за ваш комментарий, сэр, но я просто хочу знать одну вещь: если я подтвердил пользователя с помощью этого, как я могу просто извлечь пользователя из базы данных, например, на основании чего я могу его извлечь, потому что я хэшировал оба, если и электронная почта, и пароль совпадают, как я могу получить эту запись пользователя. пожалуйста, предоставьте какой-нибудь образец, если можете. спасибо.
4. Во-первых, вы не должны хэшировать электронную почту. Это необычно. Что касается пароля, используйте bcrypt.compare(). Попробуйте посмотреть документацию bcrypt, это довольно просто. npmjs.com/package/bcrypt
5. Сэр, мой вопрос касался хэширования электронной почты и пароля, тогда как я могу аутентифицировать пользователя или получить информацию о пользователе.