express-session使用
Session 简单介绍
session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 session 保存在服务器上。
Session 的用途:
session 运行在服务器端,当客户端第一次访问服务器时,可以将客户的登录信息保存。 当客户访问其他页面时,可以判断客户的登录状态,做出提示,相当于登录拦截。
session 可以和 Redis 或者数据库等结合做持久化操作,当服务器挂掉时也不会导致某些客户信息(购物车) 丢失。
Session 的工作流程
当浏览器访问服务器并发送第一次请求时,服务器端会创建一个 session 对象,生成一个类似于 key,value 的键值对,然后将 key(cookie)返回到浏览器(客户)端,浏览器下次再访问时,携带 key(cookie), 找到对应的 session(value)。 客户的信息都保存在 session 中
express-session的使用
安装
cnpm install express-session --save
引入
var session = require("express-session");
设置官方文档提供的中间件
app.use(session({
secret: 'keyboard cat',
resave: true, saveUninitialized: true
}))
使用
设置值 req.session.username = "张三";
获取值 req.session.username
express-session的常用参数
|
参数 |
作用 |
|
secret |
一个 String 类型的字符串,作为服务器端生成 session 的签名。 |
|
name |
返回客户端的 key 的名称,默认为 connect.sid,也可以自己设置。 |
|
resave |
强制保存 session 即使它并没有变化,。默认为 true。建议设置成 false。 don't save session if unmodified |
|
saveUninitialized |
强制将未初始化的 session 存储。当新建了一个 session 且未设定属性或值时,它就处于未初始化状态。在设定一个 cookie 前,这对于登陆验证,减轻服务端存储压力,权限控制是有帮助的。(默 认:true)。建议手动添加。 |
|
cookie |
设置返回到前端 key 的属性,默认值为{ path: ‘/’, httpOnly: true, secure: false, maxAge: null }。 |
|
rolling |
在每次请求时强行设置 cookie,这将重置 cookie 过期时间(默认:false) |
注:session是基于cookie使用的,在引入session时,需要把他写在cookie下使用
更多推荐
所有评论(0)