Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bycryptjs compare password return false every time #1044

Open
Mehroz101 opened this issue Jul 7, 2024 · 2 comments
Open

bycryptjs compare password return false every time #1044

Mehroz101 opened this issue Jul 7, 2024 · 2 comments

Comments

@Mehroz101
Copy link

i write a code for signup and login . i encrypt password and store in data base and after that in during signin when i compare the password is return false even the password is true and encypt and decrypt correct i try debugging statements also but never find the solution here is the code

const loginController = async (req, res) => {
try {
const { name, password } = req.body;
console.log("Received password:", password);
if (!name || !password) {
console.log("Name or password not provided");
return res.status(400).json({ message: "Please provide name and password" });
}

const user = await UserModel.findOne({ name });

if (!user) {
  console.log("User not found with name:", name);
  return res.status(404).json({ message: "User not found" });
}

// Check if password is correct
console.log("User hashed password:", user.password);
const isMatch = await bcrypt.compare(password.trim(), user.password);
console.log("Password match result:", isMatch);

if (isMatch) {
  console.log("Login successful for user:", user.name);
  return res.status(200).json({  // Corrected status code from 201 to 200 for successful login
    message: "Login successful",
    user: {
      _id: user._id,
      name: user.name,
      token: generateToken(user),
    },
  });
} else {
  console.log("Invalid password for user:", user.name);
  return res.status(401).json({ message: "Invalid password" });
}

} catch (error) {
console.error("Signin error:", error);
return res.status(500).json({ message: "Server error" });
}
};

const signupController = async (req, res) => {
try {
const { name, email, password } = req.body;

// Check if all fields are provided
if (!name || !email || !password) {
  return res
    .status(400)
    .json({ message: "Please provide name, email, and password" });
}

// Check if user already exists
const isUserExist = await UserModel.findOne({ email });
if (isUserExist) {
  return res.status(409).json({ message: "Email is already registered" });
}

const isUserNameExist = await UserModel.findOne({ name });
if (isUserNameExist) {
  return res.status(409).json({ message: "Name is already taken" });
}

// Hash password
const hashedPassword = await bcrypt.hash(password, 10);
console.log("Hashed password while signup:", hashedPassword);

// Create new user
const user = await UserModel.create({
  name,
  email,
  password: hashedPassword,
});
console.log("password stored in database: "+password)
res.status(201).json({
  message: "User created successfully",
  user: {
    _id: user._id,
    name: user.name,
    email: user.email,
    token: generateToken(user),
  },
});

} catch (error) {
if (error.name === "ValidationError") {
return res
.status(422)
.json({ message: "Validation error", details: error.message });
}
console.error("Signup error:", error);
res.status(500).json({ message: "Server error" });
}
};

the console log statement are following "
Hashed password while signup: $2a$10$BQzL/xkcX9q73ewDLv5bqeo9w0H5fBi/4oeT6imaYmFjZymbEGoI6
$2a$10$xSrww0yg/L9oiQTNorGVLew54TikR3N507loj9S8RzY0lwlrd3Xfu
password stored in database: abc
Received password: abc
User hashed password: $2a$10$xSrww0yg/L9oiQTNorGVLew54TikR3N507loj9S8RzY0lwlrd3Xfu
Password match result: false
Invalid password for user: abc"

please tell if any problem there

@yousufislam191
Copy link

I am facing the same problem. Is there any update about this?

@M00N15
Copy link

M00N15 commented Jul 15, 2024

Related to an open issue:
#1037

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants