express-session
是express中比较常用的处理session的中间件,使用npm安装:
$ npm install express-session save
session的认证机制必须依赖cookie,所以还应该同时安装一个cookie-parser
,安装方法同上。然后再app.js中导入这两个中间件:
var cookieParser = require('cookie-parser');
var session = require('express-session');
之后定义cookie解析器,注意,该定义必须写在路由分配之前:
app.use(cookieParser());
app.use(session({
secret: '12345',
name: 'name',
cookie: {maxAge: 60000},
resave: false,
saveUninitialized: true,
}));
各参数意义:secret
:用来对session数据进行加密的字符串.这个属性值为必须指定的属性。name
:表示cookie的name,默认cookie的name是:connect.sid。maxAge
:cookie过期时间,毫秒。resave
:是指每次请求都重新设置session cookie,假设你的cookie是6000毫秒过期,每次请求都会再设置6000毫秒。saveUninitialized
: 是指无论有没有session cookie,每次请求都设置个session cookie ,默认给个标示为 connect.sid。
之后在处理请求时直接通过以下方式对session进行读写:
req.session.lastpage = lastPage;//写入至session
res.redirect(req.session.lastpage);//从session中读取