快速会话未开始

问题描述 投票:0回答:1

应该在登录后重定向我的页面。但是它只是保持加载而不会显示任何错误消息,也不会重定向到/ 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);```
node.js express-session
1个回答
0
投票

我在您的代码中看到语法错误。请参阅登录功能中的if块。如果阻塞,您没有关闭。另外,我相信您应该将await next更改为next();

© www.soinside.com 2019 - 2024. All rights reserved.