如何确定排名是用户还是管理员? - 快递和会议

时间:2017-08-27 17:34:58

标签: mongodb session express

我正在使用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管理面板和其他内容。

1 个答案:

答案 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();
        }
    }
}