是不是当登录过之后,app.js中的session不会再经过?

来源:10-11 登录中间件

菜鸟x

2019-08-08


// 引入redis,再配置 redis
const redisClient = require('./db/redis')
const sessionStroe = new RedisStore({
  client: redisClient
})

app.use(session({
  secret: 'WJiol#23123_',
  cookie: {
    // path: '/', // 默认配置
    // httpOnly: true, // 默认配置
    maxAge: 24 * 60 * 60 * 1000 // session 过期时间
  },
  store: sessionStroe // session存到redis中去
}))

但按中间件的原理是,就算登录过还是会经过这段代码。那么每次找开页面,里面的过期时间不是每次都刷新?

写回答

1回答

双越

2019-08-08

每次都会经过这个中间件,我理解它也会每次都会更新过期时间(虽然我没看过源码)。

你试想,代码中过期时间是 24h ,即你登录过一次,然后 24h 之内没做任何操作,那么 24h 之后 cookie 过期。

你再事项,代码中过期时间是 24h ,你登录之后,再第 23h 又刷新了一次,那么第 24h 之后会过期吗?应该不会的。应该是在第 23h 刷新的时候重新设置一遍过期时间。即,如果你不嫌累,连续刷新,它是永远都不会过期的。

0
3
菜鸟x
回复
双越
哦哦。我还以为是像网易邮箱那样以最近一次登录时间来算。谢谢老师的解答!
2019-08-08
共3条回复

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4122 学习 · 2022 问题

查看课程