1 使用express-session来保存登录状态
1.1 什么是session
由于HTTP是无状态的,所以服务器在每次连接中持续保存客户端的私有数据,此时需要结合cookie技术,通过session会话机制,在服务器端保存每个HTTP请求的私有数据;
1.2 session原理
在服务器内存中开辟一块地址空间,专门存放每个客户端私有的数据,每个客户端根据cookie中保存的私有sessionId,可以获取到独属于自己的session数据。
1.3 在express中使用session
- 
安装session模块 npm install express-session -S 
- 
导入session模块 var session = require(‘express-session’) 
- 
在express中使用session中间件: // 启用 session 中间件 
 
 app.use(session({
 
 
 secret: ‘keyboard cat’, // 相当于是一个加密密钥,值可以是任意字符串
 
 resave: false, // 强制session保存到session store中
 
 saveUninitialized: false // 强制没有“初始化”的session保存到storage中
 
 }))
- 
将私有数据保存到当前请求的session会话中: // 将登录的用户保存到session中 
 
 req.session.user = result.dataValues;
 
 // 设置是否登录为true
 
 req.session.islogin = true;
- 
通过destroy()方法清空session数据: req.session.destroy(function(err){ 
 
 
 if(err) throw err;
 
 console.log(‘用户退出成功!’);
 
 // 实现服务器端的跳转,这个对比于 客户端跳转
 
 res.redirect(’/’);
 
 });
 
