为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第13天 koa 操作 session

标签:
Node.js

课程章节:**第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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消