我想选择任何用户 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/