1. 程式人生 > >登入的許可權驗證session的原理和實現

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

缺點:容易受到攻擊