node.js - 如何清理 Nodejs (heroku + redis) 中的所有 session ?

标签 node.js heroku connect express

我正在使用 heroku 上托管的 nodejs (expressjs) .

session 存储在 redis 中(Redistogo heroku 插件):

RedisStore = require('connect-redis')(express)
app.use express.session
      secret: process.env.CLIENT_SECRET
      cookie: { maxAge: 604800000 }
      store: new RedisStore {client: redis}

用户登录后,我将他的信息存储在 req.session 中

after_user_logged_id = (req, user)->    
  req.session.current_user =
    id: user._id
    name: user.name

我需要重新启动服务器并清理所有 session :注销所有用户以强制他们再次登录。我应该怎么做?重新启动 redis 插件没有帮助。

最佳答案

redis.flushdb() 可能有点极端,如果你最终在 redis 中存储其他东西。您只需要删除所有“sess:*”键。不幸的是,没有 del *,所以你可以使用这样的东西:

redis.keys("sess:*", function(err, key) {
  redis.del(key, function(err) {
  });
});

关于node.js - 如何清理 Nodejs (heroku + redis) 中的所有 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708656/

相关文章:

mysql - node.js Passport 用户模式手动设置

javascript - 具有异步订阅者功能的 RxJS Observable

Heroku 无法生成分发要求 -lotly 2.7.0

node.js - express.compress() 和 express.response Time() 不适用于 Controller 输出

c - 套接字编程 connect() 在我第二次运行循环时失败

javascript - 如何手动创建 Git blob 对象,然后使用 node.js 读取内容,就像 ProGit 关于 Git 内部原理的章节中一样?

networking - 如何获取 Heroku 应用的 IP 地址

java - Heroku 应用程序崩溃并出现 NoClassDefFoundError : org/eclipse/jetty/server/Handler

c - 客户端绑定(bind)如何影响 tcp 连接?

javascript - mongoose remove 不会删除所有文档