dmc1989
@dmc1989

Почему не происходит редирект при авторизации?

Код вроде рабочий, но никакого редиректа на главную не происходит, хотя видно, что serializeUser работает:
PASSPORT.JS
passport.serializeUser((user, done) => {
  console.log("USER:", user);
  done(null, user.id);
});

passport.deserializeUser((id, done) => {
  console.log(id);
  User.findOne({
    where: {id: id}
  })
  .then(({dataValues: user}) => {
    done(null, user);
  })
  .catch(err => {
    done(err, null);
  });
});

passport.use(new LocalStrategy((username, password, done) => {
  console.log(username)
  User.findOne({
    where: {username: username}
  })
  .then(({dataValues: user}) => {
    if (!user) {
      return done(null, false, { message: 'Incorrect username.' });
    }

    User.validPassword(password, user.password)
      .then(isMatch => {
        if (isMatch) {
          return done(null, user);
        } else {
          return done(null, false, { message: 'Incorrect password.' });
        }
      })
  })
  .catch(done);
}));

module.exports = passport;

ROUTING
app.get('/login', (req, res) => {
  res.set('Content-Type', 'text/html');
  res.render('create_user.pug');
});

app.post('/login', (req, res, next) => {
  passport.authenticate('local', function(err, user, info) {
    if (err) { return next(err); }

    if (!user) {
      console.log("REDIRECT", 'login')
      return res.redirect('/login');
    }

    req.logIn(user, function(err) {
      if (err) { return next(err); }

      console.log("REDIRECT", user)
      return res.redirect('/');
    });
  })(req, res, next);
});

// all
app.get('/*', (req, res, next) => {
  if (!req.isAuthenticated()) {
    res.redirect('/login');
  } else {
    next();
  }
});

require('./routes/index')(app);
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Jumandjilos
Давай так, сначала объясни, как ты понимаешь, что делает метод res.redirect ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы