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:'已退出'});
})