当前位置: 首页 > 知识库问答 >
问题:

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

严天逸
2023-03-14

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

我有两个问题,都是关于用户权限的。

>

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

我正在寻找一个智能解决方案,它不会限制我可以定义的特权数量,但如果没有定义,它也会提供一组默认的基本特权。

关于SQL实现
特权应该应用于特定公司的所有用户。
db模式类似于这样:

  • 公司(公司id等)
  • 用户(用户id、公司id等)

根据我的理解,特权模式应该是这样的:

  • 特权(prev_id,prev_name)
  • companies_privileges(company_id,prev_id)

用户权限处理
当用户登录公司时,权限与cookie/会话/前端服务一起存储。

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

所需数据权限=1用户=1

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

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

我想的对吗?我是不是漏了什么?

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

共有2个答案

麹高远
2023-03-14

我们在GoDisco找到的最佳解决方案其实非常简单。

服务器端:1。我们构建了一个RESTful API 2。这个RESTful API总是请求access_key,作为OAuth3的一个简单实现。在每个请求中,我们检查用户是否具有访问此数据的权限,否则返回“401访问被拒绝”

AngularJS侧:

  1. 我们构建一个"Auth服务"模块
  2. 当用户登录时,我们在系统中缓存了他的角色
  3. 路由器检查
    1. 这个服务是监听$路线$位置服务
    2. 每个路由请求,我们的服务检查当前登录的用户是否有请求路由的正确角色。我们只需在路由配置中定义允许的角色。
    3. 如果用户请求不允许的路由,我们通过将他的路由更改为我们的错误路由来抛给他一个错误。
    1. 我们选择使用Restangular模块来处理RESTful请求
    2. 使用Restangular我们可以通过将请求用作promise来捕获错误。如果我们有任何错误,我们会处理它

宰父单弓
2023-03-14

快速回答:

>

当时,没有角,但一般来说,在Angular中,最好执行以下操作:a.有一个主要公开单个调用的服务:isAuthorize(特权名称)。有一个使用该服务的指令,并根据其布尔结果显示/隐藏/禁用。不言而喻,它使用的是授权。C.向使用该服务的路由添加逻辑,以限制对UI中页面的访问。

那是我的两分钱。。。

 类似资料:
  • 有些企业会对向用户发送的营销内容进行严格的管理——基层的运营或营销经理拟定的活动必须经过上级管理者的审批,方可生效执行。为此,诸葛的智能触达中提供了基于用户角色的触达活动权限管理,以支撑上述的企业需求。 如果您的团队需要使用权限控制,可通过以下步骤开启使用: 开启权限控制:智能触达的权限控制默认是关闭的,需要开启后方能使用; 分配用户角色:为团队成员分别分配设定「管理员」和「运营人员」角色; 开始

  • 不同的权限显示的菜单不一样,有的多有的少

  • 我正在寻找一个解决方案,让我做一个角组件监听一个后端对象,得到一些其他服务的更新。 实际上,我有一个名为的组件,它显示客户签名的实际状态。对象中的此仅在后端通过REST公开到第三方服务的endpoint进行更新,该endpoint允许用户执行数字签名。 我的问题是,一旦第三方服务执行回调以更改状态,如何用实际状态实时更新UI。 为了便于您了解,我使用作为后端,使用作为前端。

  • 我尝试将我的棱角前端与我的Java/Spring Boot后端通信。但是终端显示了这个错误: [HPM]尝试将请求/API/DADOS从localhost:4500代理到http://localhost:8080(ECONNREFUSED)时出错(https://nodejs.org/api/errors.html#errors_common_system_errors) 下面是我的示例.serv

  • 接口说明 获取用户权限 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /permissions/api/team/user/v1.0.0/getUserPermissionsList 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN 响应字段说

  • 接口说明 获取用户权限 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /permissions/api/team/user/v1.0.0/getUserPermissions 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN 响应字段说明 无