浏览代码

新增登录

sujunling 1 年之前
父节点
当前提交
10735fa2e2
共有 3 个文件被更改,包括 61 次插入4 次删除
  1. 17 0
      src/api/sys/user.ts
  2. 15 2
      src/router/guard/permissionGuard.ts
  3. 29 2
      src/store/modules/user.ts

+ 17 - 0
src/api/sys/user.ts

@@ -14,6 +14,23 @@ enum Api {
   SendLoginSmsCode = '/noauth/send_login_code/',
   ResetCode = '/noauth/reset_code/',
   ResetPassword = '/noauth/reset/',
+  kidLogin = '/singleAuth/getCustomToken',
+}
+
+/**
+ * @description: 有response_type后的code请求
+ */
+export function kidloginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') {
+  return defHttp.post<LoginResultModel>(
+    {
+      url: Api.kidLogin,
+      params,
+    },
+    {
+      errorMessageMode: mode,
+      joinPrefix: false,
+    }
+  );
 }
 
 /**

+ 15 - 2
src/router/guard/permissionGuard.ts

@@ -1,7 +1,7 @@
 import type { Router, RouteRecordRaw } from 'vue-router';
 import { usePermissionStoreWithOut } from '/@/store/modules/permission';
 import { PageEnum } from '/@/enums/pageEnum';
-import { useUserStoreWithOut } from '/@/store/modules/user';
+import { useUserStoreWithOut, useUserStore } from '/@/store/modules/user';
 import { getAppEnvConfig } from '/@/utils/env';
 import { PAGE_NOT_FOUND_ROUTE } from '/@/router/routes/basic';
 import { RootRoute } from '/@/router/routes';
@@ -47,6 +47,19 @@ export async function createPermissionGuard(router: Router) {
     await userStore.process({ refreshToken: token, token: token }, true);
   }
 
+  const userStore2 = useUserStore();
+  if (location.href.indexOf('code') > -1) {
+    let code = location.href.split('code=')
+    console.log('有response_type后', code[1]);
+    var c = code[1].split('&');
+    const userInfo = await userStore2.kidlogin({ code: c[0] })
+    console.log('传参成功', userInfo);
+  }
+
+
+
+
+
   router.beforeEach(async (to, from, next) => {
     // console.log('Refresh token', sessionStorage.getItem('refreshToken'));
     // console.log('token', sessionStorage.getItem('refreshToken'));
@@ -78,7 +91,7 @@ export async function createPermissionGuard(router: Router) {
             next((to.query?.redirect as string) || '/');
             return;
           }
-        } catch {}
+        } catch { }
       }
       if (to.path == '/login') sessionStorage.removeItem('refreshToken');
       next();

+ 29 - 2
src/store/modules/user.ts

@@ -7,7 +7,7 @@ import { PageEnum } from '/@/enums/pageEnum';
 import { JWT_TOKEN_KEY, REFRESH_TOKEN_KEY, ROLES_KEY, USER_INFO_KEY } from '/@/enums/cacheEnum';
 import { getAuthCache, setAuthCache } from '/@/utils/auth';
 import { LoginParams, LoginResultModel, RefreshTokenParams, SmsLoginParams } from '/@/api/sys/model/userModel';
-import { doRefreshToken, getMyInfo, loginApi, smsCodeLoginApi } from '/@/api/sys/user';
+import { doRefreshToken, getMyInfo, loginApi, smsCodeLoginApi,kidloginApi } from '/@/api/sys/user';
 import { ligongLoginApi } from '/@/api/sys/ligong';
 import { useI18n } from '/@/hooks/web/useI18n';
 import { useMessage } from '/@/hooks/web/useMessage';
@@ -250,7 +250,7 @@ export const useUserStore = defineStore({
           // window.localStorage.setItem('entityId', JSON.stringify(entityId));
           // window.sessionStorage.setItem('entityId', JSON.stringify(entityId));
         }
-      } catch {}
+      } catch { }
       return userInfo;
     },
     /**
@@ -303,6 +303,33 @@ export const useUserStore = defineStore({
         },
       });
     },
+
+    /**
+    * @description: 有response_type后
+    */
+    async kidlogin(
+      params: LoginParams & {
+        goHome?: boolean;
+        mode?: ErrorMessageMode;
+      }
+    ): Promise<UserInfo | null> {
+      try {
+        const { goHome = true, mode, ...loginParams } = params;
+        // // 进行gis系统的模拟登录
+        // let gsiFormData = new FormData();
+        // gsiFormData.append('interfaceName', 'atp-provider.controller.AtpController');
+        // gsiFormData.append('methodName', 'misLogin');
+        // gsiFormData.append('args[]', "[space, ADMIN2, c4ca4238a0b923820dcc509a6f75849b, ' ']");
+        // await this.GisLogin(gsiFormData);
+        // 本系统的登录
+        const data = await kidloginApi(loginParams, mode);
+        console.log('luozhi1', data);
+
+        return this.process(data.data, goHome);
+      } catch (error) {
+        return Promise.reject(error);
+      }
+    },
   },
 });