登录的权限验证session的原理和实现

存储方式原理: 登录成功后,保存登录信息到文件/数据库种,同时保存创建时间和过期时间,下次验证的时候取出来做验证

使用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:"用户未登录,请重新登录"
            })
        })
    }
}

缺点:容易受到攻击

猜你喜欢

转载自blog.csdn.net/qq_38045106/article/details/83536410