(一) session 介绍
session 也是一种缓存,与cookie不同的是,cookie 是在客户端(浏览器),而session是在服务端,存储位置不同
(二)session 工作原理
当浏览器发送第一次请求时,服务端会建立一个session对象,生成一个类似于 key、value 的键值对,然后将 key (cookie) 返回到浏览器),也就是客户端,当浏览器再次访问的时候,携带 key (cookie),找到相应的 session(value),客户的信息都保存在 session 中,服务端的session是基于cookie的
(三)session的使用
安装 koa-session 中间件
npm i koa-session --save
配置:
// 引入 koa-session
const session = require('koa-session')
// 配置中间件
app.keys = ['some secret hurr'] // cookie 的签名 可以不管它
const CONFIG = {
key: 'koa:sess', // cookie key (default is koa:sess)
maxAge: 86400000, // cookie的过期时间 maxAge in ms (default is 1 days) 【需要修改】
overwrite: true, //是否可以overwrite (默认default true)
httpOnly: true, // cookie是否只有服务器端可以访问 httpOnly or not (default true)
signed: true, // 签名默认true
rolling: false, // 在每次请求时强行设置cookie,这将重置cookie过期时间(默认:false)
renew: false, // (boolean) renew session when session is nearly expired, 【需要修改】
};
app.use(session(CONFIG, app));
// 设置值
// ctx.session.key = value;
// 获取值
// ctx.session.key
执行后客户端是没有的
目前项目中没有用到 session...