Рубрики
Без рубрики

Простейший способ перемешивания пароля с BCRYPT от SilvenLef

Мы используем BCRYPT в наши пароли. Но как его использовать? Мы обычно занимаемся 2 основными вещами с … Теги с узлом, JavaScript, WebDev, SilvenLef.

Мы используем BCRYPT в наши пароли. Но как его использовать? Обычно мы делаем 2 основных вещей с BCRYPT.

  • хеш пароль (Я имею в виду, когда подписаться, мы хешируем ввод пароля, а затем сохранить этот хешированный пароль вместо простого пароля в нашей базе данных)

  • Проверьте пароль (Я имею в виду, когда войти в систему, сравните ввод простого пароля с помощью хэшированного пароля, который мы сохранили)

  • Хеш пароль
//it creates the hashed password. Save this hashedPassword on your DB
const hashedPassword = bcrypt.hashSync(yourPasswordFromSignupForm, bcrypt.genSaltSync());

Теперь сохраните это HashedPassword в вашей базе данных.

  • подтвердите пароль
const doesPasswordMatch = bcrypt.compareSync(yourPasswordFromLoginForm, yourHashedPassword)

Пароль совпадает логический Если пароли совпадают, он будет правдой, иначе ложно.

Во-первых, введите это на свой терминал, чтобы установить Bcryptjs Пакет NPM установить BCRYPTJS.

Теперь мы готовы его использовать.

Шаг 0.

Создайте свою модель пользователя. В этом случае мы будем держать это просто. Наша модель будет иметь только Эл. адрес и пароль поля.

Шаг 1 (используя BCRYPT, чтобы сохранить Hashed Password на DB для регистрации).

const router = require('express').Router();
const User = require('YOUR_USER_MODEL');


const bcrypt = require('bcryptjs')


router.post('/signup', async (req, res)=>{
  // these emailFromSignupForm and passwordFromSignupForm are coming from your frontend
  const { emailFromSignupForm, passwordFromSignupForm } = req.body;

 //creating a new user on our database
  const newUser = await User.create({
  email: emailFromSignupForm,
  hashedPassword: bcrypt.hashSync(passwordFromSignupForm, bcrypt.genSaltSync()),
});

//sending back the newUser to the frontEND
res.json(newUser);


})


module.exports = router;

Это демонстрационный код того, как использовать BCRYPT в Hash пароль и сохранить хешированный пароль.

Шаг 2 (используя BCRYPT для сравнения паролей для входа в систему).

const router = require('express').Router();
const User = require('YOUR_USER_MODEL');


const bcrypt = require('bcryptjs')


router.post('/login', async (req, res)=>{
  // these emailFromLoginForm and passwordFromLoginForm are coming from your frontend
  const { emailFromLoginpForm, passwordFromLoginForm } = req.body;

  //find a user from the database with your emailFromLoginForm
 const existingUser = await User.findOne({ email: emailFromLoginForm });

//if no user found
if(!existingUser) return res.json({ msg: `No account with this email found` })

//if the user is found, I mean if the user is on our database, compare the passwordFromLoginForm with the hashedPassword on our database to see if the passwords match (bcrypt will do this for us)
const doesPasswordMatch = bcrypt.compareSync(passwordFromLoginForm, existingUser.hashedPassword); //it wii give you a boolean, so the value of doesPasswordMatch will be a boolean

//if the passwords do not match
if(!doesPasswordMatch) return res.json({ msg: `Passwords did not match` });

//if the passwords match, send back the existingUser to the frontEND
res.json(existingUser);
}


})


module.exports = router;

Это демонстрационный код того, как использовать BCRYPT для сравнения и проверки паролейФоурлогинформы с помощью HashedPassword, сохраненным в вашей базе данных.

Это всего лишь демо того, как использовать BCRYPT. Надеюсь, поможет.

Если у вас есть какие-либо вопросы или Если вы застряли

Не стесняйтесь добраться до меня. Вы также можете связаться со мной на LinkedIn https://www.linkedin.com/in/silvenLeaf/ Или в Twitter (как @silvenleaf ).

Если вы хотите узнать больше обо мне, это мой веб-сайт портфолио SilvenLeaf.github.io

Я хотел бы быть твоим другом, не стесняйтесь добраться до меня !!

Следующий блог

Fetch API (проще всего объяснение) Часть 1/4 (Get) (серия)

  • 3 ноября, 4-й, 5 2020 , Серия API Fetch
  • 6 ноября 2020 , async и ждать
  • 8 ноября 2020 года Как использовать Ролевая система авторизации

  • 10 ноября 2020 года , Изменить переменные CSS с JavaScript

  • 12 ноября, 14 ноября, 16 2020 , Создать систему регистрации входа с паспортом (серия)

  • 18 ноября 2020 года , Как создать вход в систему с Google

  • 20 ноября 2020 года , Как создать вход в систему с github

  • 22 ноября 2020 , Как создать вход с LinkedIn

  • 24 ноября 2020 ноября , Как создать вход в систему с Twitter

  • 26 ноября 28, 30 2020 , Сброс пароля серии (с Node.js и rect)

Если этот блог был полезен для вас,

Это значит много для меня. Спасибо

Оригинал: “https://dev.to/silvenleaf/password-hashing-with-bcrypt-easiest-explanation-5gpg”