单页应用程序的访问控制列表

Access control lists for Single Page Apps

我正在尝试管理角色和订阅类型的访问权限(Laravel 和 Backbone.js 基于 SPA)。

尽管根据引用的标准控制对 API 端点的访问很简单,但我无法弄清楚如何在前端完成此操作。这方面的最佳做法是什么?

总结一下问题,基本上有两点需要解决:

  1. 如何呈现菜单。
  2. 如何在每个屏幕上呈现组件。

也可以选择允许的路线。 然后,一个好的做法是仅从后端 return 为用户提供 ACL,并从中确定要在菜单和屏幕中呈现哪些项目(这意味着在 ACL 和访问控制和渲染)还是 return 更具体的信息(例如菜单结构)会更好。

我可以得到任何建议吗?

从 API 返回权限详细信息应该就足够了。例如。成功登录后 return 用户可以访问的所有权限并将其存储在应用程序的本地存储中。稍后您可以使用权限来检查是否授予用户访问 menu/component 的权限。因此,根据权限,您可以 show/hide 菜单项。

您甚至可以编写一个接受一个参数进行权限检查的小函数,它会return true/false 基于existence/non-existence。因此,当您需要检查权限时,您可以调用权限检查功能并决定是 show/hide 菜单项还是组件。