node + session登录验证

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

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值