node.js - 如何根据 PASSPORTJS 中的特定用户 ID 结束用户 session 。踢我想要的任何用户等

标签 node.js mongodb passport.js

我想选择任何用户 ID 并能够结束他们的用户 session ,也就是将他们注销。

我在文档中看到的唯一内容是 req.logout() 但仅适用于当前用户(即 ME)。

// logout
userController.logout = function (req, res) {
  req.logout();
  res.redirect('/main');
};

module.exports = userController;

最佳答案

基本上,我必须使用 connect-mongostore 来存储每个用户登录时的 session 。然后,在按下禁令后,我使用现有的 mongoose 连接执行原始 mongodb 查询,根据用户名删除特定的用户 session 按钮和一个 ajax post 请求来发送用户信息。当他们尝试执行需要网站上的用户信息的下一件事时,他们将被注销。

不敢相信,8 天后这里竟然没有人提供这个简单解决方案的开始步骤...L.O.Lx100

L.O.L @ 这个认为 mongodb 标签与这里无关的人。有点需要它来删除用户 session 伙伴。 R.o.f.L @同样编辑了nodejs标签的人,除了nodejs伙伴之外,是否在其他地方找到了app.js文件?除了nodejs之外,express还能在其他地方找到吗? 这个网站上的喜剧 Actor 质量都很好。

帮助其他人的代码:

在 app.js 中:

    var session = require('express-session');
    var MongoStore = require('connect-mongostore')(session);
    app.use(require('express-session')({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: false,
  store: new MongoStore({mongooseConnection: mongoose.connection})

}));

在我的 Controller 文件中:

mongoose.connection.db.collection('sessions').deleteMany({

            "session.passport.user": username


        })

关于node.js - 如何根据 PASSPORTJS 中的特定用户 ID 结束用户 session 。踢我想要的任何用户等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48451239/

相关文章:

mongodb - 按匹配元素数量的顺序查询 MongoDB 中数组中包含的元素

javascript - 使用 Mongoose 解析并保存 Javascript 日期对象

performance - "nscanned"查询上的 "update"值非常高 - 似乎高于所有索引中所有条目的总和

javascript - MERN 堆栈 : Using Redux to store whether user is logged in or not

node.js - req.logout() 不是一个函数

node.js - Passportjs 无法验证快速 session

node.js - 如何获取仅包含数据的node-neo4j返回 Node

Node.js:尝试加载 binding.gyp 时调用 'node findJavaHome.js' 返回退出状态 127。

node.js - 一次查询多个集合(mongodb)

node.js - 当 ignore-scripts 设置为 true 时,npm 的行为有何不同?