在我的应用中,有两种类型的用户登录:普通用户和管理员用户。现在,我正在为两种类型的用户使用单个会话,并且我的应用程序表现异常。当两个或多个用户登录时,一段时间后某些用户会意外注销。
我认为此问题是由于单个会话而发生的,因此我尝试将其拆分为两个不同的会话,
//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”开头,因此我按上述方式分割了会话。
我不知道创建两个不同会话的正确方法。此外,管理员会话也无法正常工作。当我以普通用户身份注销时,我也从管理员注销。处理这些会话的最佳方法是什么,注销时我们需要做什么?
答案 0 :(得分:0)
对所有用户类型使用单个会话。最好的方法是在会话中使用帐户类型来区分用户。
每当用户注册时,请为普通用户和管理员用户设置值。在您的会话密码中,包括帐户类型。
格式应为:
secret: YOUR_SECRET.usertype
,以便您可以将其与点分开并确定用户类型。这样,您将拥有一个带有用户类型的会话。