Bladeren bron

修改登录额重定向

wangfumin 2 weken geleden
bovenliggende
commit
24be5db1e1
2 gewijzigde bestanden met toevoegingen van 8 en 2 verwijderingen
  1. 1 0
      src/request/index.ts
  2. 7 2
      src/view/system/login.vue

+ 1 - 0
src/request/index.ts

@@ -100,6 +100,7 @@ axios.interceptors.request.use(async (config) => {
     if (!offline) {
       if (!token && !~notLoginUrls.indexOf(config.url) && !shareBypassLogin) {
         const redirect = window.location.href;
+        console.log(redirect, 'redirect')
         router.replace({ name: RouteName.login, query: { redirect } });
         throw "用户未登录";
       }

+ 7 - 2
src/view/system/login.vue

@@ -140,10 +140,15 @@ const submitClick = async () => {
 
     const params: any = router.currentRoute.value.query;
     if ("redirect" in params && params.redirect) {
-      const url = new URL(decodeURIComponent(params.redirect as string));
+      const rawRedirect = decodeURIComponent(params.redirect as string);
+      const outerUrl = new URL(rawRedirect, window.location.origin);
+      const nested = outerUrl.searchParams.get("redirect");
+      const finalRedirect = nested ? decodeURIComponent(nested) : rawRedirect;
+
+      const url = new URL(finalRedirect, window.location.origin);
       url.searchParams.delete("token");
       // url.searchParams.append("token", user.value.token);
-      window.localStorage.setItem('token', user.value.token)
+      window.localStorage.setItem("token", user.value.token);
       window.location.replace(url);
     } else {
       router.replace({ name: RouteName.dispatch });