passport.use('local-login', new LocalStrategy({
usernameField : 'email',
passwordField : 'password',
passReqToCallback : true
},
function(req, email, password, done) {
User.findOne({ 'local.email' : email }, function(err, user) {
if (err)
return done(err);
if (!user)
return done(null, false, req.flash('loginMessage', 'Пользователь не найден'));
if (!user.validPassword(password))
return done(null, false, req.flash('loginMessage', 'Не коректный логин/пароль'));
return done(null, user);
});
}));
router.post("/signup", function(req, res, next) => {
User.find({ email: req.body.email })
.exec()
.then(user => {
if (user.length >= 1) { // Если почта уже существует
return res.status(409).json({
message: "Пользователь уже занят..."
});
} else {
var unixTime = Math.round(+new Date()/1000);
const user = new User({
_id: new mongoose.Types.ObjectId(),
email: req.body.email,
password: createHash(randomPass.generate({length: 6, readable: true})),
country: req.body.country,
created_at: unixTime,
});
user.save().then(result => {
console.log('Регистрация пользователя');
res.status(201).json({
"result":"ok"
});
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
}
});
});
Скорее как-то для регистрации /signup задать пустой пасс, чтобы паспорт пропустил дальше, а в /login'e пользователь уже полученный по почте пароль будет вводить. А куда здесь приткнуть
if(!req.body.password) req.body.password = " ";
не совсем догоню)))