index.js
app.post("/login", (req, res) => {
User.findOne({ email: req.body.email }, (err, user) => {
if (!user) {
return res.json({
loginSuccess: false,
message: "없는 아이디입니다.",
});
}
user.comparePassword(req.body.password, (err, isMatch) => {
if (!isMatch) {
return res.json({
loginSuccess: false,
message: "비밀번호가 틀렸습니다.",
});
}
user.generateToken((err, user) => {
if (err) return res.status(400).send(err);
res
.cookie("x_auth", user.token)
.status(200)
.json({ loginSuccess: true, userId: user._id });
});
});
});
});
User.js
UserSchema.methods.comparePassword = function (plainPassword, cb) {
bcrypt.compare(plainPassword, this.password, function (err, isMatch) {
if (!err) {
return cb(err);
}
cb(null, isMatch);
});
};
UserSchema.methods.generateToken = function (cb) {
var user = this;
var token = jwt.sign(user._id.toHexString(), "secretToken");
user.token = token;
user.save(function (err, user) {
if (err) return cb(err);
cb(null, user);
});
};
이렇게 했는데 loginSuccess가 계속 false로 나옵니다....