express提供的express-session模块基本的使用:
1、在适当位置引入该模块:
app.use(session({ s
resave: true, // don't save session if unmodified
saveUninitialized: false, // don't create session until something stored
secret: 'cnk'
}));
引入之后,该模块会自动为每一个会话生成一个session,并分配一个sessionid来唯一标识该session,并将sessionid存储在当前会话的cookie中,每当有前端同一个会话对服务器发出请求时,会自动根据其sessionid(在浏览器控制台输入:“console.log(document.cookie)可以查看”)来调用存储在服务器内存的相应的session。
2、所以我们可在登陆模块直接设置session.user="随便一个字符串",然后在那些只有登陆之后才给看的页面添加限制(判断它们的session之中是否有user属性),如果没有就跳转至登陆界面或者注册界面。如下例子:
限制模块:
app.use(function(req,res,next){
if(req.session.user||req.path=="/login.html"){
//如果已经登陆或者访问的是登陆页就放行
console.log("login or had session.user");
next();
}else{
//转向登陆页面
console.log("doesnot has session.user")
res.redirect("/login.html");
}
})
ps:得添加在那些登陆完才能查看的页面之前
登录模块:
添加以下语句在账目密码验证已经正确的会话后:req.session.user=account;
这样子登录模块的基本功能就已经实现了。
网友评论