微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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"));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐