Browse Source

处理 sso。

jxq 2 months ago
parent
commit
f9f37ddfb7
1 changed files with 47 additions and 36 deletions
  1. 47 36
      src/views/login/index.vue

+ 47 - 36
src/views/login/index.vue

@@ -204,46 +204,50 @@ const route = useRoute();
 function handleLogin() {
   loginFormRef.value.validate((valid: boolean) => {
     if (valid) {
-      //保存用户名和密码
-      localStorage.setItem("local_name", loginData.value.userName);
-      localStorage.setItem("local_pwd", loginData.value.password);
-
-      loading.value = true;
-      userStore
-        .login(loginData.value)
-        .then(async () => {
-          const query: LocationQuery = route.query;
-          const redirect = (query.redirect as LocationQueryValue) ?? "/";
-          const otherQueryParams = Object.keys(query).reduce(
-            (acc: any, cur: string) => {
-              if (cur !== "redirect") {
-                acc[cur] = query[cur];
-              }
-              return acc;
-            },
-            {}
-          );
-          // 获取字典
-          getUserDicts(dictStore.types).then((res) => {
-            if (res.data) {
-              dictStore.dicts = res?.data ?? [];
-            }
-          });
-
-          // router.push({ path: redirect, query: otherQueryParams });
-          router.push("/welcome");
-        })
-        .catch(() => {
-          // getCaptcha();
-          console.log("catch");
-        })
-        .finally(() => {
-          loading.value = false;
-        });
+      toLogin();
     }
   });
 }
 
+const toLogin = () => {
+  //保存用户名和密码
+  localStorage.setItem("local_name", loginData.value.userName);
+  localStorage.setItem("local_pwd", loginData.value.password);
+
+  loading.value = true;
+  userStore
+    .login(loginData.value)
+    .then(async () => {
+      const query: LocationQuery = route.query;
+      const redirect = (query.redirect as LocationQueryValue) ?? "/";
+      const otherQueryParams = Object.keys(query).reduce(
+        (acc: any, cur: string) => {
+          if (cur !== "redirect") {
+            acc[cur] = query[cur];
+          }
+          return acc;
+        },
+        {}
+      );
+      // 获取字典
+      getUserDicts(dictStore.types).then((res) => {
+        if (res.data) {
+          dictStore.dicts = res?.data ?? [];
+        }
+      });
+
+      // router.push({ path: redirect, query: otherQueryParams });
+      router.push("/welcome");
+    })
+    .catch(() => {
+      // getCaptcha();
+      console.log("catch");
+    })
+    .finally(() => {
+      loading.value = false;
+    });
+};
+
 /**
  * 主题切换
  */
@@ -272,6 +276,13 @@ function checkCapslock(e: any) {
 }
 
 onMounted?.(() => {
+  // 处理SSO
+  const query: LocationQuery = route.query;
+  if (query.token) {
+    loginData.value.token = query.token + "";
+    toLogin();
+  }
+
   getOrgList();
   toggleTheme();