如何使用 node.js express-session 关闭单独的会话?

问题描述 投票:0回答:4

我在我的 express.js 应用程序中使用 express-session 模块进行会话处理

我的 express.js 应用程序为用户和管理员权限创建会话。

我有 req.session.user & req.session.admin

我的问题是我不知道如何关闭一个会话而不是另一个。

您可以使用此命令关闭会话:req.session.destroy()

但这会破坏两个会话。我尝试使用 req.session.user.destroy() 但没有成功。这不是一个有效的命令。

那么我怎样才能销毁一个会话而不是另一个?

node.js express express-session
4个回答
7
投票

在正常配置中,每个站点的每个浏览器只有一个会话对象。该会话对象可以具有多个属性,但只有一个会话,因此您不会仅仅为了删除一个属性而销毁会话。此外,会话只是一个普通的 Javascript 对象,因此您可以从中添加/删除属性。

既然你在谈论“单独的会议”,那么你想要完成的事情并不完全清楚。您可以使用

delete
运算符从会话中删除单个属性,如:

delete req.session.admin;

这将从会话对象中删除

.admin
属性,但保留会话本身和它上面的其他属性。


0
投票

可能对你有帮助 -> 删除 req.session.user


0
投票

您可以尝试如下取消设置会话属性:

delete req.session.username;
//OR
req.session.username=null;

0
投票
req.session.user = "";
req.session.admin = "";
req.session.destroy((err) => {
        if (err) throw err;
        else {
            res.redirect('/[url]'); // replace [url] with your desired route
        }
});

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.