登陆成功后,保存登陆信息到文件/数据库种,同时保存建立时间和过时时间,下次验证的时候取出来作验证
使用express-session中间件来进行session的操做
npm install express-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为单位 } }))
若是登陆成功,发送给前端,前端存储,下次请求时携带给后端前端
req.session.userInfo={ id:_judge_result[0]._id, level:_judge_result[0].level||8//8为等级权限 }
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:"用户未登陆,请从新登陆" }) }) } }
总结:后端存储验证信息的方式,若是用户过大,须要作负载均衡,还容易受到攻击,如:网站钓鱼。若是你有什么看法,欢迎留言。