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