登录权限验证session

原理

登录成功后,保存登录信息到文件/数据库种,同时保存创建时间和过期时间,下次验证的时候取出来做验证
使用express-session中间件来进行session的操作

安装express-session

npm install express-session

配置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为单位
  }
}))

发送给前端

如果登录成功,发送给前端,前端存储,下次请求时携带给后端

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:"用户未登录,请重新登录"
            })
        })
    }
}
总结:后端存储验证信息的方式,如果用户过大,需要做负载均衡,还容易受到攻击,如:网站钓鱼。如果你有什么见解,欢迎留言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值