我目前正在构建一个复杂的基于 AngularJS 的前端网站。后端由 PHP 和 MySQL 提供支持。
我有两个问题,都是关于用户权限的。
您将如何设计用于存储用户权限的数据库模式?将来我想添加预定义的权限(几组)并将它们用作免费/高级帐户类型。
您将如何在前端管理这些权限?您什么时候获取/重新获取权限?您将如何在需要特权的每种方法上检查它们?
我正在寻找一种智能解决方案,它不会限制我可以定义的权限数量,但如果未定义任何内容,也会提供一组默认的基本权限。
关于 SQL 实现
权限应适用于特定公司的所有用户。
db 架构是这样的:
- 公司(company_id 等)
- 用户(user_id、company_id 等)
据我了解,特权架构应如下所示:
- 特权(prev_id,prev_name)
- 公司特权(company_id,prev_id)
用户登录公司权限时的用户权限处理
与 cookie/会话/前端服务一起存储。
为了在前端进行验证,我使用了一个指令,将当前用户权限与所需权限进行比较:
需要数据权限=1 用户=1
至于后端部分,我目前正在向服务器发送每个请求的用户令牌。此令牌已针对数据库进行验证。我可以使用它来获取用户权限并存储它们,而不是检查用户是否可以访问/使用某个功能。
除了添加真/假权限外,我还需要支持数字权限,
例如:限制特定列表中可查看项目的数量。
我想对了吗?我错过了什么吗?
要求
- 每家公司无限权限
- 默认权限应适用于所有公司