我正在使用express-session和mongoose。在我的用户架构中,我有排名键值对,即排名:'admin'/'mod'/'user'
现在我如何确定用户的排名?我的会话看起来像这样:
app.use(session({
secret: process.env.SESSION_SECRET || 'as54v88vrh7e5a9',
store: new MongoStore({
mongooseConnection: mongoose.mongoose.connections[0],
ttl: (1*60*60)
}),
cookie: {
path: '/',
maxAge: 3600000 //60 min
},
secure: true,
httpOnly: true,
resave: false,
saveUninitialized: true,
name: "ID"
}));
我可以通过'user'访问每个req中的会话。如果user = true,那么我们与已登录用户进行会话。我正在考虑使用IF CONDITION,但我不能将两个参数与把手进行比较。
所有这些都决定了哪个用户可以访问f.e管理面板和其他内容。
答案 0 :(得分:0)
由于没有人回答,我必须自己提出答案。
我可以这样做吗?这样安全吗?
function requireAdmin(req, res, next) {
if (!req.user) {
res.json({
"Error": "You need to log in."
})
} else {
if (req.user.rank !== 'admin') {
res.json({
"Error": "You don't have access."
})
} else {
next();
}
}
}