登陸權限驗證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:"用戶未登陸,請從新登陸"
            })
        })
    }
}
總結:後端存儲驗證信息的方式,若是用戶過大,須要作負載均衡,還容易受到攻擊,如:網站釣魚。若是你有什麼看法,歡迎留言。
相關文章
相關標籤/搜索