应该在登录后重定向我的页面。但是它只是保持加载而不会显示任何错误消息,也不会重定向到/ 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);```
我在您的代码中看到语法错误。请参阅登录功能中的if块。如果阻塞,您没有关闭。另外,我相信您应该将await next
更改为next()
;