天天看點

登入的權限驗證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:"使用者未登入,請重新登入"
            })
        })
    }
}
           

缺點:容易受到攻擊

繼續閱讀