From c206ab5b4a38f99bec4ee34d7b01bbabc83fa120 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期三, 19 六月 2024 14:29:44 +0800 Subject: [PATCH] update 优化 三方登录不同域名问题 采用新方案 --- src/layout/components/SocialCallback/index.vue | 21 ++++++++++++++------- 1 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/layout/components/SocialCallback/index.vue b/src/layout/components/SocialCallback/index.vue index dcc10a6..1cfeca8 100644 --- a/src/layout/components/SocialCallback/index.vue +++ b/src/layout/components/SocialCallback/index.vue @@ -17,22 +17,20 @@ const code = route.query.code as string; const state = route.query.state as string; const source = route.query.source as string; -const tenantId = route.query.tenantId as string ? route.query.tenantId as string : '000000'; +const stateJson = JSON.parse(atob(state)); +const tenantId = stateJson.tenantId as string ? stateJson.tenantId as string : '000000'; +const domain = stateJson.domain as string; const processResponse = async (res: any) => { if (res.code !== 200) { throw new Error(res.msg); } - if (res.data !== null && res.data.access_token !== null) { + if (res.data !== null) { setToken(res.data.access_token); } ElMessage.success(res.msg); setTimeout(() => { - if (res.data !== null && res.data.domain !== null) { - location.href = res.data.domain + import.meta.env.VITE_APP_CONTEXT_PATH + 'index'; - } else { - location.href = import.meta.env.VITE_APP_CONTEXT_PATH + 'index'; - } + location.href = import.meta.env.VITE_APP_CONTEXT_PATH + 'index'; }, 2000); }; @@ -64,6 +62,15 @@ }; const init = async () => { + // 濡傛灉鍩熷悕涓嶇浉绛� 鍒欓噸瀹氬悜澶勭悊 + let host = window.location.host; + if (domain !== host) { + let urlFull = new URL(window.location.href); + urlFull.host = domain; + window.location.href = urlFull.toString(); + return; + } + const data: LoginData = { socialCode: code, socialState: state, -- Gitblit v1.9.3