lib/SessionManager.js

/**
 * @class
 * @classdesc 会话管理器,主要负责会话 id 的存取,默认在 session 中放置 token 的 uuid,也从 session 中取回
 */
class SessionManager {
  /**
   * @constructor
   * @param {object} ctx  egg's ctx
   */
  constructor (ctx) {
    /**
     * egg 的 ctx 对象,通过它来调用相关的其他资源
     * @public
     */
    this.ctx = ctx
  }
  /**
   * 获取会话 id
   * @returns {undefined|string|number}
   */
  async getSession () {
    return this.ctx.session.uuid
  }
  /**
   * 设置会话 id
   * @param {number|string} value 会话 id
   */
  async setSession (value) {
    this.ctx.session.uuid = value
  }
  /**
   * 销毁会话
   */
  async destroy () {
    this.ctx.session.uuid = null
  }
}

module.exports = SessionManager