如何使用好的 npm 模块在 node js express 服务器中执行基于角色的授权?
How to perform role based authorisations on nodejs express server with a good npm module?
我正在研究一个在 nodejs express 服务器上进行授权的解决方案。我通过检查 ID 令牌值检查用户是否有权访问特定访问组并查看该组名称是否存在,从而获取登录用户的角色信息。我必须通过允许特定用户角色访问特定端点来根据用户角色执行授权。
实现这一目标的最佳授权 npm 模块或技术是什么?
我已经搜索了很多,比如 casl 等,但似乎有很多方法,这只是在增加混淆栏。任何帮助将不胜感激!
任何一种权限管理都是关于用户可以对存储在db中的数据做什么。
因此,我建议在 resources/models/tables 上定义权限。您可以将多个权限分组到一个角色下。这就是您获得 RBAC 的方式。
要获取更多详细信息,请查看此示例:
如果这太令人困惑,只需使用 http 关键字 (get/post/etc) 作为操作并使用 req.url
作为主题。所以,最终你会得到类似的东西:
app.use((req, res, next) => {
const ability = defineUserAbility(req.user);
if (ability.can(req.method, req.url)) {
next()
} else {
res.status(403).end()
}
})
我正在研究一个在 nodejs express 服务器上进行授权的解决方案。我通过检查 ID 令牌值检查用户是否有权访问特定访问组并查看该组名称是否存在,从而获取登录用户的角色信息。我必须通过允许特定用户角色访问特定端点来根据用户角色执行授权。
实现这一目标的最佳授权 npm 模块或技术是什么?
我已经搜索了很多,比如 casl 等,但似乎有很多方法,这只是在增加混淆栏。任何帮助将不胜感激!
任何一种权限管理都是关于用户可以对存储在db中的数据做什么。
因此,我建议在 resources/models/tables 上定义权限。您可以将多个权限分组到一个角色下。这就是您获得 RBAC 的方式。
要获取更多详细信息,请查看此示例:
如果这太令人困惑,只需使用 http 关键字 (get/post/etc) 作为操作并使用 req.url
作为主题。所以,最终你会得到类似的东西:
app.use((req, res, next) => {
const ability = defineUserAbility(req.user);
if (ability.can(req.method, req.url)) {
next()
} else {
res.status(403).end()
}
})