当前位置: 首页 > news >正文

网站开发后端技术百姓网免费发布信息网下载

网站开发后端技术,百姓网免费发布信息网下载,昌黎县城乡建设局网站,网站建设 镇江万达三种权限管理的方法: 在做后台管理系统时,难免会使用到权限管理,权限管理方式有三种,分别是:路由、守卫、后端配合。 路由:通过动态路由,根据登录人员不同注册不同的路由,直接让没…
三种权限管理的方法:

在做后台管理系统时,难免会使用到权限管理,权限管理方式有三种,分别是:路由、守卫、后端配合。

路由:通过动态路由,根据登录人员不同注册不同的路由,直接让没有权限的人员直接看不到需要权限的页面。

守卫;守卫是一种用于控制路由访问的机制。守卫可以在用户导航到特定路由之前、之中或之后执行特定的逻辑,比如权限验证、数据预加载等。如果条件不满足,守卫可以阻止导航并进行重定向。

后端配合:后端可以对token解析后进行判断,判断该成员是否可以获取该数据。

umi的特点:

umi的特点就是当项目初始化时,路由就已经注册过固定了,因此后期使用动态路由无法再根据登录人员进行路由的动态注册,因此只能使用守卫或者后端人员配合。但是,umi中提供了一个专门用于解决此问题的方法:权限 (umijs.org)

详细过程:

注意:解决方法仅仅是自己的理解,并通过测试可以实现相应功能。实际应用可能并非如此。

解决方法有两种:

第一:使用access配合后端来解决:

在routes.ts中,给需要添加权限管理的路由添加access属性:

{path:"/page1",name;"page1",component:"/Page1",access:"admin"//该字段可以为任意值,保证前后值相同即可。
}

之后在src/access.ts中:

export default function access(initialState: { currentUser?: API.CurrentUser } | undefined) {//定义一个access函数,接收一个参数initialState,该参数可以是包含 currentUser 属性的对象或未定义。const { currentUser } = initialState ?? {};//从 initialState 对象中解构出 currentUser 属性。如果initialState未定义,则使用空对象作为默认值。return {admin:currentUser && currentUser.access === 'admin',//当currentUser 存在,并且currentUser中属性access的值为admin时,admin为true。这里面要注意:属性admin要和前面个routes.ts中access的值相同,值中的admin要和下一块代码返回值中的access属性相同。};
}

 最后通过与后端协商,在api.ts中的方法currentUser的返回值中加上access属性,并且根据上方代码,有权限的人员登录时返回的access属性必须要是"admin",其他人任意值。

方法二:使用umi内置的组件和Hook函数:Access+useAccess

在需要添加权限的组件页面内使用。使用过程及方法:

第一:想办法存储用来区分有没有权限的的证明(存在localStorage、sessionStorage、session或者调用接口从后端获取都可以);

第二:引入并使用useAccess

//如果证明存储在access.ts中,那么可以通过引入Hook函数useAccess来解决,如果没有存在access.ts中,那么下方代码中和useAccess有关的都可以删除。
import { useAccess, Access } from '@umijs/max';//引入Hook函数和Access组件
export default page1()=>{const access = useAccess();if(!access.admin){//将证明存储在access.ts中可以这么使用//当access.ts中返回值admin为false,即没有权限查看时执行该处代码,可以进行重定向或展示其他内容,举个例子:return <div>无权限查看</div>}else{//本页面原本应该返回的代码}if(证明是否正确){//证明没有存储在access.ts中可以这么使用//正确操作}else{//失败操作}//另外就是比较简单的写法,使用umi自带的Access组件:return (<Accessaccessible={凭证是否正确}fallback={凭证不正确时显示的内容}>凭证正确时显示的内容</Access>)
}

这就是我理解的使用umi自带的权限管理方式来处理权限问题的方法。

http://www.lakalapos1.cn/news/409/

相关文章:

  • 长春最专业的网站建设直播系统
  • 设计一个自己的电商网站广州网站建设 骏域网站建设
  • 做网站 被谷歌收录在线网站建设询问报价
  • 网站上的充值链接怎么做googleplay
  • 益阳一站式网站建设公司网站建设公司兴田德润电话
  • 白石洲附近做网站公司南京移动网站建设效果好
  • 商城网站建设公司wordpress主题在线编辑
  • 上海快速网站建设wordpress开发上传图片
  • 北京高端网站建设价格站长之家端口扫描
  • 新沂市网站建设珠海网站建设策划
  • 网站外链建设工作总结外贸专业网站建设
  • 网站建设 不需要见面wordpress调用分类id
  • 响应式网站 做搜索推广缺点外文网站建设
  • 网站建设美化建站公司哪家好都选万维科技
  • 人才招聘网站模板成都微信小程序
  • 网站开发接单网站网站 建设需要提供哪些资料
  • 企业网站怎么做两种语言wordpress 3.8 下载
  • wordpress网站维护页面如何建设网站pdf下载
  • 网站地图优化资阳论坛
  • wap手机网站源码惠州有哪些做网站的公司
  • 专业设计网站公司wordpress搭建超详细
  • 常州做网站价位福安网站设计
  • 做网站费用 优帮云无锡建设局施工许可证网站
  • 公司网站换服务器怎么做wordpress无法上传头像
  • 桐乡建设规划局网站无锡网站建设哪里好
  • 企业建设营销型网站的目的有做电商网站的设计思路有什么
  • 做一个好的公司网站有什么好处重庆疾控最新通告今天
  • 专业网站运营制作优化公司治理
  • 电商网站开源授权二次开发学院网站建设目的与意义
  • 河北中小企业网站wordpress 分类 图标