使用express-sessions和knex使所有用户会话无效

时间:2016-10-06 19:43:03

标签: node.js knex.js express-session

我继承了一个需要更新的Express网站。有一个重置密码的路由,但是当发生这种情况时我需要使所有用户会话无效,并允许同时在当前浏览器上自动登录。 我对Express很新,所以有人能指点我指导吗?

设置sessionStore:

const sessionStore = knexSession(session)
const store = new sessionStore({
  knex: db
})
app.use(session({
  secret: sessionKey,
  resave: false,
  saveUninitialized: false,
  store,
  cookie: {
    maxAge: null,
    httpOnly: true,
    secure: app.get('env') !== 'development' || app.get('port') === 443,
  }
}))

重设密码:

let data = {
  password,
  token: null,
  expires: null
}

return models.user.update(user.id, user.id, data)
   .then(_ => {
     //reset session user sessions
    //only invalidates the current session
    req.logout()
    req.session.destroy(function (err) {
      res.clearCookie('connect.sid')
      res.redirect('/')
    });
})

0 个答案:

没有答案