首页 >

聊聊在Angular项目中怎么实现权限控制?

web前端|js教程聊聊在Angular项目中怎么实现权限控制?
Angular
web前端-js教程
Angular项目中怎么实现权限控制?下面本篇文章通过代码实例来聊聊 Angular 项目实现权限控制的方法,希望对大家有所帮助!
4493美图网站源码,ubuntu怎么启动gcc,tomcat8含的文件,加密网址爬虫,php数组重复元素个数,户外品牌seolzw
易语言账号注册机源码,vscode无法保存,18.04 Ubuntu,调tomcat内存,获取sqlite表中数据,ckeditor word图片插件,百度前端的框架,爬虫脚本用什么语言写,查杀php木马,罗源公司seo报价,折线图 网站模板,怎么实现网页下雪,精仿大前端d8主题织梦模板lzw
上一篇文章我们讲到了 Angular 组件通信。本文我们讲讲,在项目开发中,你是否会遇到这样的需求:请根据用户登陆,限制其访问的内容。【相关教学推荐:《angular教学》】
好用的文章采集源码,ubuntu下串口助手,tomcat8设置密码,天价爬虫案例,php在线语音,seo优化的常用工具有哪些lzw
So,这就是要进行权限控制

对用户的权限限制,我们一般会有下面的处理方式:

对用户登陆的菜单做控制

对用户的行为做限制

我们结合 Angular 来讲解下这个话题。

菜单路由控制

系统开发的时候,会有很多的菜单,这个时候,就需要后端判断用户的角色,按照用户的权限返回不同的菜单路由。

返回的数据格式需要我们按照自己在 app-routing.module.ts 中编写好的路由路径对应。

比如,我们有路由文件如下:

// app-routing.module.tsconst routes: Routes = [  {    path: 'user-manage',    component: AuthLayoutComponent, // 通过鉴权的组件    children: [      {        path: '',        redirectTo: 'user',        pathMatch: 'full'      },      {        path: 'user', // 用户列表        component: UserComponent      },      {        path: 'user/detail/:uuid', // 用户详情,类似这种不会出现在菜单里面        component: UserDetailComponent      },      {        path: 'department', // 部门列表        component: DepartmentComponent      }    ]  },  // ...]

在页面中,我们的菜单展示的数据是这样子的:

定义了一个二级的菜单,拥有下面几个字段:

title 字段 – 菜单的标题url 字段 – 菜单的路由,对应 app-routing.module.ts 中的完整的 pathicon 字段 – 标题前的小图标,二级标题没有is_open 字段 – 菜单是否展开的标识

此时,后端的菜单接口,应该返回类似下面的数据:

// demo.component.tspublic menu_data:any = [  {    title: "成员管理",    url: "user-manage",    icon: "user-switch", // 这里是用了 angular ant design 的图标    is_open: false,    children: [      {        title: "用户",        url: "user-manage/user",        icon: undefined,        is_open: false      },      {        title: "部门",        url: "user-manage/department",        icon: undefined,        is_open: false      }    ]  },  // ...]

也许你会有疑问?️:二级标题中都用不上 iconis_open 这两个字段,为啥还要写?

嗯~,读者可以对后端返回提要求,但是为了保持数据的可读性和易操作,还是保留为好…

用户行为控制

用户的行为控制,这个的就很细粒度的行为了。小到控制用户的一个按钮的展示等,但是本质来说,都是对后端接口请求的限制?。比如,你请求一个列表,但是你没有权限,那么你就请求不了,报 401 的错误。

我们可以按照需求,针对用户的不同角色,限定用户不能查看或者其他操作。但是,这样很不合理,用户可以通过 postman等工具发起请求,而不通过系统。所以,我们得–

在后端做一层限制

我们获取到后端返回的接口权限,比如接收到下面这些数据:

{  code: 0,  msg: 'ok',  results: {    getUserList: {     url: '/api/get/user/list', // 当然,可以按照前后端规定返回,不一定是真实的 url ...     enable: true    },    editUser: {      url: '/api/edit/:uuid',      enable: false    }  }}

我们得到数据之后,跟前端保存的内容做比对,再按照条件控制,接口需要做对应的限制访问,而不是单纯前端判断。

【完】

编程入门!!


  • 暂无相关文章
  • Posted in 未分类