eggjs / egg

🥚 Born to build better enterprise frameworks and apps with Node.js & Koa
https://eggjs.org
MIT License
18.88k stars 1.81k forks source link

session maxAge = session, redis保存出错 #1295

Closed zlab closed 6 years ago

zlab commented 7 years ago

看了一下koa-session,maxAge不支持设置为0,但是可以设置为 session

// koa-session context.js
const maxAge = opts.maxAge ? opts.maxAge : ONE_DAY;
    if (maxAge === 'session') {
      // do not set _expire in json if maxAge is set to 'session'
      // also delete maxAge from options
      opts.maxAge = undefined;
    } else {
      // set expire for check
      json._expire = maxAge + Date.now();
      json._maxAge = maxAge;
    }

在保存redis的时候,过期时间是个字符串,会报错

// egg-session-redis app.js
* set(key, value, maxAge) {
      maxAge = maxAge || ONE_DAY;
      value = JSON.stringify(value);
      yield redis.set(key, value, 'PX', maxAge);
    },
atian25 commented 7 years ago

过期时间是个字符串

具体指?

dead-horse commented 7 years ago

egg-session-redis 改一下吧,这个比较麻烦,这种类型的 session 服务端其实只能拍脑袋存一个时间的,所以本意是不太想支持 session 级别的。

atian25 commented 6 years ago

@dead-horse any progress on this?

dead-horse commented 6 years ago

fixed in egg-session-redis@2.0.1