• NodeJS Как генерировать пароль в Passport?

    lungdesire29
    @lungdesire29 Автор вопроса
    Да тут сами роуты то:
    router.post('/signup', passport.authenticate('local-signup', {
    		successRedirect : '/ok', 
    		failureRedirect : '/signup',
    		failureFlash : true 
    	}));
    router.post('/login', passport.authenticate('local-login', {
    		successRedirect : '/profile',
    		failureRedirect : '/login',
    		failureFlash : true 
    	}));

    Скорее как-то для регистрации /signup задать пустой пасс, чтобы паспорт пропустил дальше, а в /login'e пользователь уже полученный по почте пароль будет вводить. А куда здесь приткнуть if(!req.body.password) req.body.password = " ";
    не совсем догоню)))
  • NodeJS Как генерировать пароль в Passport?

    lungdesire29
    @lungdesire29 Автор вопроса
    В общем да, но к сожаления при регистрации никакого поля с паролем напросто не будет, т.к. адрес направляется с мобильного приложения. (и только адрес). С формой пока работаю для удобства.
  • NodeJS Как генерировать пароль в Passport?

    lungdesire29
    @lungdesire29 Автор вопроса
    Для авторизации имеется такая конструкция:
    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);
            });
        }));
  • NodeJS Как генерировать пароль в Passport?

    lungdesire29
    @lungdesire29 Автор вопроса
    Полностью с Вами согласен! С этим уже стало ясно. На данный момент ситуация такова, что если в форме отсутствует поле пароля, которое я напросто убрал за ненадобностью, в моем коде passport не работает с данными формы, т.к. пароля нет. Это реально поправить?
  • NodeJS Как генерировать пароль в Passport?

    lungdesire29
    @lungdesire29 Автор вопроса
    Только что убрал поле пароля из формы, passport теперь в б.д. не пишет. Я так понимаю passport видит, что поле password пустое и вылетает. Как по Вашему, это можно поправить?
  • NodeJS Как генерировать пароль в Passport?

    lungdesire29
    @lungdesire29 Автор вопроса
    Первоначальный вариант для регистрации у меня был:
    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
          });
        });
        }
      });
    });

    Как считаете, имеет ли он преимущества перед паспортным?