# 1.1. 权限相关概念

在web系统中, 权限很久以来一直都只是后端程序所控制的, 为什么呢?? 因为web系统的本质围绕的是数据, 而和数据库最紧密接触的是后端程序, 所以很长的一段时间内, 权限一直都只是后端程序员需要考虑的话题, 但是随着前后端分离架构的流行, 越来越多的项目也在前端进行权限控制

# 1.1.权限的分类

  • 后端权限

    从根本上讲前端仅仅只是视图层的展示, 权限的核心是在于服务器中的数据变化, 所以后端才是权限的关键, 后端权限可以控制某个用户是否能够查询数据, 是否能够修改数据等操作

    • 后端如何知道该请求是哪个用户发过来的
      cookie session  token
    
    1
    • 后端的权限涉及RBAC
     用户 角色 权限
    
    1
  • 前端权限

    • 前端权限的控制本质上来说, 就是控制前端的视图层的展示和前端所发送的请求, 但是只有前端权限控制没有后端权限控制是万万不可的, 前端权限控制只可以说是达到锦上添花的效果

# 1.2.前端权限的意义

如果仅从能够修改服务器中数据库的数据层面上讲, 确实只在后端做控制就够了, 那为什么越来越多的项目也进行了前端权限的控制, 注意有这几个方面的好处

  • 降低非法操作的可能性
    • 不怕贼偷就怕贼惦记, 在页面中展示出一个 就算点击了也最终会失败 的按钮, 势必会增加有心者非法操作的可能性
    • 尽可能排除不必要的请求, 减轻服务器压力
      • 没必要的请求, 操作失败的请求, 不具备权限的请求, 应该压根不需要发送, 自然减轻服务器的压力
    • 提高用户体验
      • 根据用户具备的权限为该用户展示自己权限范围内的内容, 避免在界面上给用户带来困扰, 让用户专注于分内之事
上次更新: 2020/11/25 下午4:03:26