在我的应用程序中,有两种类型的用户登录:普通用户和管理员用户。现在,我对两种类型的用户都使用单个 session ,并且我的应用程序表现异常。当两个或更多用户登录时,有时某些用户会意外注销。
我认为这个问题是由于单个 session 而发生的,我尝试分成两个不同的 session ,
//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”开头,因此我按照上面的方式分割 session 。
我不知道这是否是创建两个不同 session 的正确方法。此外,管理员 session 也未按预期工作。当我以普通用户身份注销时,我也会从管理员中注销。处理这些 session 的最佳方式是什么以及注销时我们需要做什么?
最佳答案
对所有用户类型使用单个 session 。最好的方法是在 session 中使用帐户类型来区分用户。
每当用户注册时,请设置普通用户和管理员用户的值。在您的 session key 中包含帐户类型。
格式应如下所示:
secret: YOUR_SECRET.usertype
这样你就可以用点来分割它并确定用户类型。这样您将拥有一个带有用户类型的 session 。
关于node.js - 如何使用快速 session 为普通用户和管理员用户创建两个不同的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55917270/