如何使用快速会话为普通用户和管理员用户创建两个不同的会话?

问题描述 投票:1回答:1

在我的应用程序中,有两种类型的用户登录:普通用户和管理员用户。现在我正在为这两种类型的用户使用单个会话,而我的应用程序表现异常。当两个或多个用户登录时,某个用户会在某个时间意外注销。

我认为这个问题是由于单个会话而发生的,我试图分成两个不同的会话,因为

//manage session for normal user
app.use('/', session({
    key: USER_SESS_NAME, 
    resave: false,
    saveUninitialized: false,
    secret: SESSION_SECRET,
    cookie: {
        expires: 600000
    }
}));


//manage session for admin
app.use('/admin', session({
    key: ADMIN_SESS_NAME, 
    resave: false,
    saveUninitialized: false,
    secret: SESSION_SECRET,
    cookie: {
        expires: 600000
    }
}));


此外,普通用户的所有路由都以“/”开头,而管理员则以“/ admin”开头,因此我按上述方式拆分会话。

我不知道这是否是创建两个不同会话的正确方法。此外,管理员的会话也没有按预期工作。当我以普通用户身份退出时,我也会从管理员退出。处理这些会话的最佳方式是什么?退出时我们需要做些什么?

node.js session-cookies express-session
1个回答
0
投票

对所有用户类型使用单个会话。最好的方法是在会话中使用帐户类型来分隔用户。

每当用户注册时,为普通用户和管理员用户设置值。在您的会话中,秘密包括帐户类型。

格式应如下所示:

secret: YOUR_SECRET.usertype

这样您就可以用点分割它并确定用户类型。这样,您将拥有一个包含用户类型的会话。

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