소스 검색

将路由白名单功能上到正式环境

Jing 7 시간 전
부모
커밋
91d783c25c

+ 1 - 1
.nuxt/manifest/latest.json

@@ -1 +1 @@
-{"id":"9a343ac5-02ed-464f-b401-843410b7f553","timestamp":1750141208459}
+{"id":"7f5ef8db-acda-4ada-b5a5-21d10a7b9d14","timestamp":1750665644509}

+ 1 - 0
.nuxt/manifest/meta/7f5ef8db-acda-4ada-b5a5-21d10a7b9d14.json

@@ -0,0 +1 @@
+{"id":"7f5ef8db-acda-4ada-b5a5-21d10a7b9d14","timestamp":1750665644509,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

+ 0 - 1
.nuxt/manifest/meta/9a343ac5-02ed-464f-b401-843410b7f553.json

@@ -1 +0,0 @@
-{"id":"9a343ac5-02ed-464f-b401-843410b7f553","timestamp":1750141208459,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

+ 1 - 1
.nuxt/tsconfig.json

@@ -102,7 +102,7 @@
         "./imports"
       ],
       "#app-manifest": [
-        "./manifest/meta/9a343ac5-02ed-464f-b401-843410b7f553.json"
+        "./manifest/meta/7f5ef8db-acda-4ada-b5a5-21d10a7b9d14.json"
       ],
       "#components": [
         "./components"

+ 61 - 27
middleware/setup.global.js

@@ -1,7 +1,7 @@
 export default async function (to, from) {
     //获得全局url
     const { $webUrl, $CwebUrl } = useNuxtApp();
-    if(to.path == '/' || to.path == '/404'){
+    if(getRouteWhiteList(to.path)){
         //如果目标路由是/,或者/404 无需验证
     }else{
         // to是目标路由对象,from是来源路由对象
@@ -42,38 +42,72 @@ function parseRoute(url) {
         parts.pop();
     }
     
-    let all_route, last_route;
-    
+    let all_route, last_route, other_route;
+
     // 如果路径以 xiangcunshangcheng 开头
-    if (parts[0] === "xiangcunshangcheng") {
-        if( parts.length > 1){
-            if(parts[parts.length - 1] != 'gongying' && parts[parts.length - 1] != 'qiugou'){
-                // 否则按原逻辑处理
-                all_route = parts.join('/');
-                last_route = parts.length > 0 ? parts[parts.length - 1] : null;
-            }else{
-                // all_route = 去掉最后一层
-                all_route = parts.slice(0, -1).join('/');
-                // last_route = 新的最后一层
-                last_route = parts.length > 1 ? parts[parts.length - 2] : null;
-            }
-        }else{
-            // 否则按原逻辑处理
-            all_route = parts.join('/');
-            last_route = parts.length > 0 ? parts[parts.length - 1] : null;
-        }
-    } else {
-        // 否则按原逻辑处理
-        all_route = parts.join('/');
-        last_route = parts.length > 0 ? parts[parts.length - 1] : null;
-    }
+    // if (parts[0] === "xiangcunshangcheng") {
+    //     if( parts.length > 1){
+    //         if(parts[parts.length - 1] != 'gongying' && parts[parts.length - 1] != 'qiugou'){
+    //             // 否则按原逻辑处理
+    //             all_route = parts.join('/');
+    //             last_route = parts.length > 0 ? parts[parts.length - 1] : null;
+    //         }else{
+    //             // all_route = 去掉最后一层
+    //             all_route = parts.slice(0, -1).join('/');
+    //             // last_route = 新的最后一层
+    //             last_route = parts.length > 1 ? parts[parts.length - 2] : null;
+    //         }
+    //     }else{
+    //         // 否则按原逻辑处理
+    //         all_route = parts.join('/');
+    //         last_route = parts.length > 0 ? parts[parts.length - 1] : null;
+    //     }
+    // } else {
+    //     // 否则按原逻辑处理
+    //     all_route = parts.join('/');
+    //     last_route = parts.length > 0 ? parts[parts.length - 1] : null;
+    // }
+
+    all_route = parts.join('/');
+    last_route = parts.length > 0 ? parts[parts.length - 1] : null;
+    other_route = parts[0]
+
     // 返回结果(只有数字.html 时才包含 id)
     const result = {
         all_route,
-        last_route
+        last_route,
+        other_route,
     };
     if (id !== undefined) {
         result.id = id;
     }
     return result;
-}
+}
+
+//获得路由白名单列表
+function getRouteWhiteList(path){
+    if(path=='/'){
+        console.log('白名单路由!允许访问!')
+        //如果用户进入的是首页,直接返回true
+        return true
+    }else{
+        //如果用户进入的不是首页,则需要判断第一层路由是否在白名单
+        const parts = path.split('/').filter(Boolean); // 分割并过滤空字符串
+        console.log(parts[0])
+        let whiteList = [
+            // "404",
+            // "search",//搜索页
+            // "xiangcunshangcheng",//乡村商城搜索页
+            // "topic",//商圈
+            // "advertising",//广告
+            // "about",//关于我们
+        ]
+
+        if(whiteList.includes(parts[0])){
+            console.log('白名单路由!允许访问!')
+            return true
+        }else{
+            return false
+        }
+    }
+}