登入的許可權驗證session的原理和實現
阿新 • • 發佈:2018-11-01
儲存方式原理: 登入成功後,儲存登入資訊到檔案/資料庫種,同時儲存建立時間和過期時間,下次驗證的時候取出來做驗證
使用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:"使用者未登入,請重新登入" }) }) } }
缺點:容易受到攻擊