Open farzaadweb opened 1 year ago
const messageController = require('@service').message; const { v4: uuidv4 } = require('uuid'); const _User = require('@model').User; const bcrypt = require('bcryptjs');
class User { async register(req, res) { let { email, firstName, lastName, password, age } = req.body if (!email || !firstName || !lastName || !password || !age) { return res.status(400).send(messageController(400)) }; let checkUser = await _User.findOne({ where: { email } }) if (checkUser) return res.status(409).send(messageController(409)); let hashedPassword = await bcrypt.hash(password, 12); try { let createUser = await _User.create({ id: uuidv4(), email, firstName, lastName, password: hashedPassword, age }) if (createUser) return res.status(201).send(messageController(201)); return res.status(422).send(messageController(422)); } catch (error) { return res.status(500).send(messageController(500)); } }
async login(req, res) { let { email, password } = req.body if (!email || !password) { return res.status(400).send(messageController(400)) }; let findUser = await _User.findOne({ where: { email } }); if (!findUser) return res.status(404).send(messageController(404, 'User Not Found', 'کاربری با این مشخصات یافت نشد')); let hashedPasswordCheck = await bcrypt.compare(password, findUser.dataValues.password) console.log(hashedPasswordCheck); if (!hashedPasswordCheck) return res.status(401).send(messageController(401)); console.log("after", hashedPasswordCheck); } }
module.exports = User;
It always returns me as false but the code is true
It does not make sense I know but remove await
and it should work
let hashedPasswordCheck = bcrypt.compare(password, findUser.dataValues.password)
Though signature of compare is function compare(s: string, hash: string): Promise<boolean>
, I hope someone can explain why these last days it fails with await
, while in the past it worked well.
DO NOT REMOVE AWAIT. IF you do this, it will return a promise which will always be true. Any password will work in that situation.
Thank you for your time. The issue stemmed from the version I had installed. A previous version was functioning properly, and it's possible that they have since updated and rectified the problem.
I have that issue ultimately. I dont know why. Because the issue ocurrs suddenly without any explanation meanwhile I was developing my software. In the begging works well, but I don´t know why stop working
Also on my code compare() returns always true and compareSync() returns always false. In my previous applications it was working fine and now its not functioning..
const messageController = require('@service').message; const { v4: uuidv4 } = require('uuid'); const _User = require('@model').User; const bcrypt = require('bcryptjs');
class User { async register(req, res) { let { email, firstName, lastName, password, age } = req.body if (!email || !firstName || !lastName || !password || !age) { return res.status(400).send(messageController(400)) }; let checkUser = await _User.findOne({ where: { email } }) if (checkUser) return res.status(409).send(messageController(409)); let hashedPassword = await bcrypt.hash(password, 12); try { let createUser = await _User.create({ id: uuidv4(), email, firstName, lastName, password: hashedPassword, age }) if (createUser) return res.status(201).send(messageController(201)); return res.status(422).send(messageController(422)); } catch (error) { return res.status(500).send(messageController(500)); } }
async login(req, res) { let { email, password } = req.body if (!email || !password) { return res.status(400).send(messageController(400)) }; let findUser = await _User.findOne({ where: { email } }); if (!findUser) return res.status(404).send(messageController(404, 'User Not Found', 'کاربری با این مشخصات یافت نشد')); let hashedPasswordCheck = await bcrypt.compare(password, findUser.dataValues.password) console.log(hashedPasswordCheck); if (!hashedPasswordCheck) return res.status(401).send(messageController(401)); console.log("after", hashedPasswordCheck); } }
module.exports = User;
It always returns me as false but the code is true