Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const genSalt = (key) = new Promise((resolve, reject) => bcrypt.genSalt(key, (err, salt) => {
- if (err)
- reject(err);
- resolve(salt);
- }));
- const hash = (pass, salt) => new Promise((resolve, reject)) => bcrypt.hash(pass, salt, (err, hash) => {
- if (err)
- reject(err);
- resolve(hash);
- }));
- userRouter.post('/singup', async (req, res) => {
- let errors = []
- const { managerID, fullName, password, password2 } = req.body
- if (req.body.password != req.body.password2) {
- errors.push({ text: 'Passwords do not match' })
- }
- if (errors.length > 0) {
- res.render('user/signup', {
- errors,
- managerID,
- fullName,
- password
- });
- return;
- }
- const user = await User.findOne({ managerID })
- if (user) {
- req.flash('error_msg', 'ID is already registered!')
- res.redirect('/user/signup')
- return;
- }
- const newUser = new User({
- managerID,
- fullName,
- password
- })
- const salt = await genSalt(10);
- const hash = await hash(newUser.password, salt);
- newUser.password = hash
- await newUser.save()
- try {
- req.flash('success_msg', 'You are now registered and can log in');
- res.redirect('/user/login')
- } catch (err) {
- console.log(err)
- return
- }
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement