我正在尝试使用express-session变量登录用户。我无法通过其他路线的会议。
我的应用程序初始化文件(index.js)文件:-
const session = require('express-session');
app.use(session({
secret: config.get('secretKey.key'),
resave: false,
saveUninitialized: true,
cookie: {
maxAge: 6000
}
}))
当用户在填写用户名和密码后单击提交时,节点将重定向到此登录控制器页面:-
router.post('/', (req, res) => {
let user_session = req.session;
if(!user_session._id){
Users.findOne({username: req.body.username}, (err, user) => {
if (err) console.log("Database error: " + err);
let passwordMatch = checkUser(req.body.password, user.password);
if (passwordMatch) {
user_session.userId = user._id;
console.log("Successfully logged in: " + user_session.userId);
} else {
console.log("Login failed");
}
})
} else {
res.redirect('/admin');
}
})
成功登录后,它们将被重定向到该路由。但是,我没有登录,而是要您按照以下设置登录消息。这是我的管理员页面代码
router.get('/', function (req,res) {
let user_session = req.session;
if (user_session.userId){
console.log(session.userId)
res.render('./../views/admin/admin.pug');
} else {
res.send("You need to login first!");
}
})