课程章节:**第3章 技术选型和知识点介绍(下) 3-7
课程讲师:双越
课程内容:
Koa 提供了中间件用于操作 session。首先安装依赖:
yarn add koa-generic-session koa-redis
在 app.js 中注册中间件:
const session = require('koa-generic-session')
const redisStore = require('koa-redis')
const { REDIS_CONF } = require('./configs/db.config');
// session配置
// keys 的作用:在浏览器端使用 cookie 存储的userId(sessionId)不能是明文,否则别人拿到了就能仿冒身份。使用 keys 进行加密。
app.keys = ['H_dN703$arF']
// 注册中间件
app.use(session({
key: 'wb.sid',
prefix: 'wb:sess:',
cookie: {
path: '/',
httpOnly: true,
maxAge: 60 * 60 * 24 * 1000
},
store: redisStore({
all: `${REDIS_CONF.host}:${REDIS_CONF.port}`
})
}))
参数说明:
-
key: 定义cookie的name,默认是koa.sid。cookie存储的是一个sessionId,redis根据这个id
-
prefix: 定义session存储到redis中的key的前缀
-
path: cookie在哪个路径下可以访问, /表示在该网站下任何地方都能使用
-
HttpOnly: 只能通过server端修改cookie,客户端不允许修改
-
maxAge: cookie的过期时间,单位是ms
-
store: session 的存储方式。使用 koa-redis 中间件来将 session 存储到 redis 数据库中,使用 all 属性设置 redis 数据库的连接配置。
虽然在 app.js中配置了 session和 redis,但此时如果访问服务,是不会生成 cookie 和session的,自然也不会在 redis 数据库中存储数据。这是因为如何没有涉及到session的操作,是不会有session\生成的。所以,为了检测 session,需要在后端接口中,定义一些session的操作。
课程收获:
这节课学习了通过两个中间件,来分别生成 session和存储session 到 redis 数据库中,主要是中间件的配置选项要有所了解。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦