存储方式原理: 登录成功后,保存登录信息到文件/数据库种,同时保存创建时间和过期时间,下次验证的时候取出来做验证
使用express-session中间件来进行session的操作
1.安装express-session
npm install express-session
2.配置expess-session中间件
使用中间件进行配置
//使用express-session插件
app.use(session({
secret: 'keyboard cat',//这是秘钥
resave: false,
saveUninitialized: true,
cookie: {
path: '/',//发送的cookies路径
httpOnly: true,//是否http请求
secure: false,
maxAge: 1000*60*60 //设置过期的时间,以ms为单位
}
}))
3.登陆成功时向前端发送cookie
req.session.userInfo={
id:_judge_result[0]._id,
level:_judge_result[0].level||8
}
4.判断是否登录
const isSignin =(req,res)=>{
if(req.session.userInfo){
res.render('user',{
code:200,
data:JSON.stringify({
msg:"用户已经登录了"
})
})
}else{
res.render('user',{
code:403,
data:JSON.stringify({
msg:"用户未登录,请重新登录"
})
})
}
}
缺点:容易受到攻击