国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue項(xiàng)目實(shí)現(xiàn)簡單的權(quán)限控制管理功能

2019-11-19 11:10:36
字體:
供稿:網(wǎng)友

在Vue項(xiàng)目中實(shí)現(xiàn)權(quán)限控制管理

對于一般稍大一些的后臺管理系統(tǒng),往往有很多個人員需要使用,而不同的人員也對應(yīng)了不同的權(quán)限系統(tǒng),后端的權(quán)限校驗(yàn)保障了系統(tǒng)的安全性,而前端的權(quán)限校驗(yàn)則提供了優(yōu)秀的交互體驗(yàn)。

校驗(yàn)方式

前端對用戶的權(quán)限信息進(jìn)行校驗(yàn)往往在兩個方面進(jìn)行限制

  • 路由不可見
  • 元素不可見

通過以上兩個方式,來將用戶權(quán)限之外的內(nèi)容隱藏掉。

路由不可見實(shí)現(xiàn)方法

在router.js中的meta字段中加入該路由的訪問權(quán)限列表

{  path: 'edit',  name: 'edit',  meta: {    title: '編輯賬戶',    auths:['edit_account']  },  component: () => import('pathToComponent/component.vue'),},

Vue.router中提供了導(dǎo)航守衛(wèi),我們這里使用 全局前置守衛(wèi) 對路由跳轉(zhuǎn)進(jìn)行權(quán)限校驗(yàn)

router.beforeEach(to,from,next)

參數(shù) to 是即將進(jìn)入的路由對象,我們可以在對象中拿到之前在router.js中定義的 route 對象,并獲得 auths 字段

router.beforeEach((to,from,next)=>{  const hasAuth = function(needAuths,haveAuths){   //判斷用戶是否擁有權(quán)限的function    // implement   }  const havaAuths = []; // 用戶擁有的權(quán)限列表  if(!hasAuth(to.meta.auths,haveAuths)){    //沒有權(quán)限重定位到其他頁面,往往是401頁面    next({replace:true,name:'otherRouteName'})  }  //權(quán)限校驗(yàn)通過,跳轉(zhuǎn)至對應(yīng)路由  next();})

在有側(cè)邊欄的后臺管理中,還需要對側(cè)邊欄的路由導(dǎo)航進(jìn)行隱藏,這里同樣是通過拿到 route.meta.auths 字段進(jìn)行過濾。

元素不可見實(shí)現(xiàn)方法

因?yàn)槟承╉撁嬷袝幸恍┨厥獾慕涌谡{(diào)用或數(shù)據(jù)展示受到權(quán)限控制顯示。前端通過控制元素的展示來隱藏掉用戶不具有權(quán)限的元素,避免點(diǎn)擊了某一個button導(dǎo)致接口401報錯這樣不友好的交互體驗(yàn)。

全局注冊一個directive, directive官網(wǎng)介紹 。

//acl.jsconst aclDirective = {  inserted:function(el,binding){ // 在被綁定的元素插入到dom中時    const hasAuth = function(needAuths,haveAuths){ //判斷用戶是否擁有權(quán)限的function      // implement     }    const havaAuths = []; // 用戶擁有的權(quán)限列表    if(!hasAuth(binding.value,haveAuths)){ //binding.value 可以獲得綁定指令時傳入的參數(shù)      el.style = "display:none"; //修改元素的可見狀態(tài)    }  }}//main.jsVue.directive('acl',aclDirective); //全局注冊指令

在需要控制顯示的組件上我們就可以通過 v-acl 進(jìn)行權(quán)限控制

<button v-acl="['edit_access']">編輯賬戶</button>

總結(jié)

以上所述是小編給大家介紹的Vue項(xiàng)目實(shí)現(xiàn)簡單的權(quán)限控制管理功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 抚远县| 扶绥县| 奉节县| 古浪县| 榆林市| 嵊泗县| 陆川县| 集安市| 桂平市| 冷水江市| 盘锦市| 辉县市| 青海省| 大姚县| 枝江市| 芜湖市| 绿春县| 泸州市| 高邮市| 宁晋县| 双桥区| 张掖市| 洪泽县| 东乌| 三河市| 陇南市| 嘉荫县| 柳州市| 宣恩县| 务川| 新绛县| 板桥市| 英吉沙县| 牙克石市| 文水县| 翼城县| 卢氏县| 团风县| 彭山县| 屯昌县| 岑溪市|