瀏覽代碼

feat: 路由拦截新增path验证白名单

cuiyalong 3 年之前
父節點
當前提交
23c8abd3db
共有 1 個文件被更改,包括 20 次插入2 次删除
  1. 20 2
      src/router/router-interceptors.js

+ 20 - 2
src/router/router-interceptors.js

@@ -2,8 +2,26 @@ import router from '@/router/router'
 import store from '@/store/'
 import { powerCheck } from '@/utils/bigmember/'
 
+// 权限控制白名单-路由path
+const powerCheckPathWhiteRegList = [
+  /free_*/
+]
 // 权限控制白名单-路由名
-const powerCheckWhiteList = ['404', 'ent_search', 'ent_ser_portrait', 'unit_portrayal', 'ent_follow', 'pro_follow_detail']
+const powerCheckWhiteList = [
+  '404',
+  'ent_search',
+  'ent_ser_portrait',
+  'unit_portrayal',
+  'ent_follow',
+  'pro_follow_detail'
+]
+
+const regListCheck = function (regList, path) {
+  if (!Array.isArray(regList)) return false
+  return regList.some(reg => {
+    return reg.test(path)
+  })
+}
 
 router.beforeEach(async (to, from, next) => {
   let { power, info } = store.state.user
@@ -11,7 +29,7 @@ router.beforeEach(async (to, from, next) => {
     info = await store.dispatch('user/getUserPower')
     power = info.power ? info.power : []
   }
-  if (powerCheckWhiteList.includes(to.name)) {
+  if (powerCheckWhiteList.includes(to.name) || regListCheck(powerCheckPathWhiteRegList, to.path)) {
     if (to.name === 'ent_ser_portrait') {
       if (info.memberStatus > 0 && (power.indexOf(4) !== -1 || power.indexOf(13) !== -1)) {
         next({