Node.js Express.js用户权限安全模型

我们有一个应用程序有两种类型的用户。根据用户登录的方式,我们希望他们能够访问应用程序的不同部分。

我们如何实施安全模型以防止用户看到他们无法访问的内容

我们做每个路由实现的安全部分吗?问题是我们将在请求之间有一些重复的逻辑。我们可以将它转移到辅助函数,但我们仍然需要记住调用它。

我们做一个全局app.all()路由处理程序的安全部分吗?问题是,我们必须检查每个路由,并根据众多规则做不同的逻辑。至少所有的代码都在一个地方,但是…所有的代码一个地方。

解决方法

让它每路由通常适用于我。这是我通常做的:

function requireRole(role) {
    return function(req,res,next) {
        if(req.session.user && req.session.user.role === role)
            next();
        else
            res.send(403);
    }
}

app.get("/foo",foo.index);
app.get("/foo/:id",requireRole("user"),foo.show);
app.post("/foo",requireRole("admin"),foo.create);

// All bars are protected
app.all("/foo/bar",requireRole("admin"));

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...