1.下載並引入
const cookieParse = require('cookie-parser');
const session = require('express-session');
設置session
app.use(session({
secret: 'aaa',
cookie: {maxAge: 60 * 1000},//設置有效期
resave: true, //保存session值
saveUninitialized: false //設置session cookie
}));
2.登錄成功後寫入session數據
// 登錄
router.post('/login', (req, res) => {
let {us, ps} = req.body;
if(!us || !ps) {
return res.send({err:-1,msg:'參數錯誤'});
} else {
User.find({us, ps})
.then((data) => {
if(data.length > 0) {
// 登錄成功後把用戶相關信息存入session
req.session.login = true;
req.session.name = us;
res.send({err:0,msg:'登陸成功',token:token});
} else {
return res.send({err:-1,msg:'用戶或密碼錯誤'});
}
})
.catch((err) => {
res.send({err:-2,msg:'登陸失敗'});
})
}
})
3. 在需要驗證的接口(或中間件)中加入判斷驗證是否登錄
app.use('/food',(req, res, next) => {
// session驗證
// console.log(req.body);
// console.log(req.session);
if(req.session.login) {
next();
} else {
res.send({err:-999,msg:'請先登錄'});
}
}, foodRouter);
4.退出登錄
router.post('/logout', (req, res)=>{
req.session.destory();
res.send({err:0,msg:'已退出'});
})