Экспресс сессия не начинается - PullRequest
0 голосов
/ 28 октября 2019

Моя страница должна быть перенаправлена ​​после входа в систему. Но он продолжает загружаться, не показывая никаких сообщений об ошибках и не перенаправляя в / profile. Я проверил экспресс-документацию, но, похоже, проблема в моем коде, а не в экспресс-сессии?


app.use(session({
    secret: 'secret',
    resave: true,
    saveUninitialized: true,
    cookie: {
        path: '/auth'   ,
    secure: false,
        maxAge  : 24*60*60*1000,
        ephemeral: true
  },
}));

const login = async (req, res, next) => {

  //req body
  try {
    //querying the database 

    //find email

    if (results && results.length && user.email_address) {
      req.session.loggedin = true;
      req.session.email_address = email_address;
      req.session.save();
      return res.redirect('/profile');

    //check if password matches 

  } catch (error) {
    res.status(500).send({ success: false, message: 'Server error' });
  }

  await next;
}

const requiresLogin = async (req, res, next) => {
      if (req.session.loggedin && req.session.email_address) {
        return next();
      } else {
        return res.status(401).send('You must be logged in to view this page');
      }
  }
routes.js :

mainRouter.post('/auth', login)
mainRouter.get('/profile', requiresLogin);```

1 Ответ

0 голосов
/ 28 октября 2019

Я вижу синтаксическую ошибку в вашем коде. Смотрите блок if в функции входа в систему. Вы не закрыли, если заблокировать. Кроме того, я считаю, что вы должны изменить await next на next();

...