首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js + Express.js用户权限安全模型

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

Stack Overflow用户
提问于 2012-03-08 05:26:55
回答 4查看 49.7K关注 0票数 80

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

我们如何实现安全模型,以防止用户看到他们无权访问的内容?

我们是否将安全作为每条路由实现的一部分?问题是我们在请求之间会有一些重复的逻辑。我们可以将它移到helper函数中,但我们仍然需要记住调用它。

我们是否将安全性作为全局app.all()路由处理程序的一部分?问题是,我们必须检查每条路由,并基于大量规则执行不同的逻辑。至少所有的代码都在一个地方,但是...所有的代码都在一个地方。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-08 05:46:52

对我来说,每条路线都可以使用它。这是我通常要做的:

代码语言:javascript
复制
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"));

// All paths starting with "/foo/bar/" are protected
app.all("/foo/bar/*", requireRole("user"));
票数 137
EN

Stack Overflow用户

发布于 2012-03-21 21:50:11

您可以对每个身份验证使用CanCan js,这非常类似于Rails https://github.com/scottkf/ability-js的CanCan

票数 9
EN

Stack Overflow用户

发布于 2014-03-19 20:58:28

看看NodeJS访问控制列表/权限系统的this list。我觉得OptimalBits node_acl看起来最棒。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9609325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档