gpt4 book ai didi

php - JS(Angular) 前端用户权限与 PHP + MySQL 后端

转载 作者:行者123 更新时间:2023-11-29 13:28:57 26 4
gpt4 key购买 nike

我目前正在构建一个复杂的基于 AngularJS 的前端网站。后端由 PHP 和 MySQL 提供支持。

我有 2 个问题,都与用户权限有关。

  1. 您将如何设计用于存储用户权限的数据库架构?将来我想添加预定义的权限(几组)并将它们用作免费/高级帐户类型。

  2. 您将如何在前端管理这些权限?您什么时候获取/重新获取权限?您将如何检查每个需要权限的方法?

我正在寻找一种智能解决方案,它不会限制我可以定义的权限数量,但如果未定义任何权限,它还会提供一组默认的基本权限。

关于SQL实现
这些权限应适用于特定公司中的所有用户。
数据库模式是这样的:

  • 公司(company_id 等)
  • 用户(user_id、company_id 等)

据我了解,权限架构应该如下所示:

  • 权限(prev_id、prev_name)
  • companies_privileges(company_id, prev_id)

用户权限处理
当用户登录时,公司权限将通过 cookie/ session /前端服务存储。

为了在前端进行验证,我使用了一个指令来将当前用户权限与所需权限进行比较:

data-privilege required=1 user=1

至于后端部分,我当前正在将每个请求发送到服务器的用户 token 。该 token 根据数据库进行验证。我可以使用它来获取用户权限并存储它们,而不是检查用户是否可以访问/使用某个功能。

除了添加真/假权限之外,我还需要支持数字权限,
例如:限制特定列表中可查看项目的数量。

我的想法对吗?我错过了什么吗?

要求
- 每个公司无限的特权
- 默认权限应适用于所有公司

最佳答案

快速回答:

  1. 我设计并实现了一种复杂的权限机制,该机制基于 Angular 色、每个对象都有动词,并且具有继承性。它相当强大,是整个系统众多功能的基础。免费用户和高级用户之间的差异是其中一项要求,并且它得到了完美的满足。所以这是您可能想要遵循的方向。不用说,这是服务器端逻辑。

  2. 当时还没有 Angular,但一般来说,在 Angular 中,最好执行以下操作:A. 有一个主要公开单个调用的服务:isAuthorized(privilege-name)。B. 有一个使用该服务的指令(“needPrivilege='privilege-name'”),并根据其 bool 结果显示/隐藏/禁用。不用说,它使用 isAuthorized。C. 向也使用该服务的路由添加逻辑,以限制对 UI 中页面的访问。

这是我的两分钱...

关于php - JS(Angular) 前端用户权限与 PHP + MySQL 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754607/

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