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

plicqrtu  于 2023-03-22  发布在  Node.js
关注(0)|答案(4)|浏览(226)

我在我的express.js应用程序中使用express-session模块进行会话处理
我的express.js应用程序为用户和管理员权限创建会话。
我有req.session.user&req.session.admin
我的问题是我不知道如何关闭一个会话而不是另一个。
您可以使用以下命令关闭会话:req.session.destroy()
但是这会破坏两个会话。我尝试使用req.session.user.destroy(),但没有成功。它不是一个有效的命令。
那么,如何才能销毁一个会话而不销毁另一个会话呢?

bpzcxfmw

bpzcxfmw1#

在正常配置中,每个站点的每个浏览器只有一个会话对象。该会话对象可以有多个属性,但只有一个会话,因此您不会为了删除属性而销毁会话。此外,会话只是一个普通的Javascript对象,因此您可以添加/删除其中的属性。
因为你在谈论“单独的会话”,所以并不完全清楚你想实现什么。你可以使用delete操作符从会话中删除单个属性,如下所示:

delete req.session.admin;

这将从会话对象中删除.admin属性,但会话本身和其他属性保持不变。

ezykj2lf

ezykj2lf2#

可能会帮助您-〉删除请求。会话。用户

whhtz7ly

whhtz7ly3#

您可以尝试以下方法来取消设置会话属性:

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

vaqhlq814#

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

希望这个有用。

相关问题