если я хэшировал и электронную почту, и пароли, пожалуйста, дайте мне знать, как войти в систему в nodejs

#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. Сэр, мой вопрос касался хэширования электронной почты и пароля, тогда как я могу аутентифицировать пользователя или получить информацию о пользователе.