2
Session

yutent edited this page 2023-11-02 18:09:34 +08:00

会话(Session)

框架的会话系统, 是基于redis存储的, 所以如果开启session, 机器上必须有安装redis。

Session对cookie有依赖, 会写入一个NODESSID的cookie。

使用

这里先看一下默认的配置:

session: {
  ttl: 3600 * 24 * 7,
  domain: '', // NODESSID域
  level: 0, // 校验级别, 0: 不校验客户端, 2: ua, 4: ip, 6: ua + ip
  db: {
    host: '127.0.0.1',
    port: 6379,
    db: 0
  }
}
  • enabled <Boolean> 这个没啥可说的了, 就是一开关。
  • ttl <Number> 有效期, 单位秒, 默认7天, 客户端一直有请求时, 会实时更新有效期。
  • domain <String> 【必须】对应的ssid的cookie域。
  • level <Number> 安全校验等级, 默认不校验, 即只要拿到ssid, 无论是谁请求都是合法的; 可根据业务需要, 设置相应的安全校验, 如, useragent、 ip。
  • db <Object> redis的连接配置

框架默认已经安装了会话拓展包, 但是并未启用; 且在控制器基类中封装了一个操作session的方法, 一般情况下, 只需要关心那个方法的使用即可。


import { createSession, SessionModule } from '@gm5/session'


app
  .install(SessionModule, { domain: 'example.com' })
  .use(createSession())