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

如何在具有良好 npm 模块的 nodejs express 服务器上执行基于角色的授权?

如何解决如何在具有良好 npm 模块的 nodejs express 服务器上执行基于角色的授权?

我正在研究在 nodejs express 服务器上进行授权的解决方案。我通过检查 ID 令牌值检查用户是否有权访问特定访问组并查看该组名是否存在来获取登录用户的角色信息。我必须通过允许特定用户角色访问特定端点来根据用户角色执行授权。

可以实现这一点的最佳授权 npm 模块或技术是什么?

我已经搜索了很多,比如 casl 等,但似乎有很多方法,这只是在混淆酒吧。任何帮助将不胜感激!

解决方法

任何类型的权限管理都是关于用户可以对存储在数据库中的数据做什么。

这就是为什么,我建议定义资源/模型/表的权限。您可以在一个角色下对多个权限进行分组。这就是您获得 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()
  }
})

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