session
-
sesion是服务端存储数据,session也是一个对象。对session 的操作,就是基本的对象操作。读value 添加 key:value
-
使用方式
在哪使用:接口中。
1:往session 中存数据 ctx.session.属性 = js数据类型(除了函数)
对客服端而言,ctx.session 是“写”的过程,写到客户端cookie中
cookie
- cookie 是客户端存储数据 cookie,cookie 也是一个对象 存储的是session对象
cookie 对象描述:
- key 为session中名字 (在服务端配置session信息时候设置的)
- value 为session存储的数据 (在服务端操作session时,添加)
- session与cookies关系
- coolies 的value 为session 存的内容,过程经过了请求与响应
通过cookies 与session存储数据;可以知道当前登录的是哪个用户
koa-session
- 在koa2 中使用session 的第三方中间件
导入
- 配置session
- 挂在到应用中间件中
- 使用session对象存数据(在接口中)
const session = require('koa-session');
// 通过任意字符串为基准进行加密算法的字符串 base64
// keys 作用在cookie 的value值时加密后的内容
app.keys = ['some secret hurr'];
const CONFIG = {
key: 'koa:sess', // 设置 session的名字 也是cookie中key
maxAge: 86400000,
autoCommit: true,
overwrite: true,
httpOnly: true, // 是否允许客户端操作cookies true:不允许 false 允许
signed: true, // 数字签名,保证数据不被修改
rolling: false, // 过期时间访问顺延,指的是数据存储过期后;时候否继续加时间 false 不顺延 true 顺延
renew: false,
};
app.use(ctx => {
// 使用session 存储数据
ctx.session.views = ++n;
});
app.use(session(CONFIG, app));