请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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


// 引入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 20:56:42

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

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 菜鸟x #1
    哦。这段代码意思是间距最近一次打开页面24小时,而不是第一次登录经过24小时?
    回复 有任何疑惑可以回复我~ 2019-08-08 21:00:06
  • 双越 回复 提问者 菜鸟x #2
    是的。这样也更加符合产品逻辑。
    回复 有任何疑惑可以回复我~ 2019-08-08 21:22:31
  • 提问者 菜鸟x 回复 双越 #3
    哦哦。我还以为是像网易邮箱那样以最近一次登录时间来算。谢谢老师的解答!
    回复 有任何疑惑可以回复我~ 2019-08-08 21:24:08
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信