gpt4 book ai didi

node.js - Nodejs 将角色连接到数据库表

转载 作者:太空宇宙 更新时间:2023-11-03 23:09:03 25 4
gpt4 key购买 nike

我有一个用express.js编写的 Node 应用程序,其中包含用于身份验证的护照和用户的连接角色。我还有一个组表,我想将其连接到连接角色。有没有关于如何进行此操作的文档。我希望连接角色使用我的组表行来分配角色。

最佳答案

connect-roles 没有定义任何存储机制。它只是注入(inject) session 对象中经过身份验证的用户。存储与您在 connect-roles 中测试的角色等效的字符串取决于您。您通常会首先对用户进行身份验证(这会为您提供用户对象及其角色),然后进行授权(其中执行 connect-roles)。 Passport 中间件应在 connect-roles 之前使用(根据 connect-roles 文档)

就我而言,我将角色集合添加到我的用户模型中,并负责从数据库中检索该集合。您仍然需要实现角色测试功能,这就是您定义时引用用户模型角色属性的地方。

示例:

roles.use(function (req, action) {
if (req.isAuthenticated()){
if (req.user.securityRoles.indexOf('admin') >= 0) return true; //admins can access all pages
else return req.user.securityRoles.indexOf(action) >= 0;
}
});

然后你保护这样的路由:

app.get('/offers', roles.is('offer.read'), offers.index);

关于node.js - Nodejs 将角色连接到数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23221115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com