diff --git a/src/layout/components/SocialCallback/index.vue b/src/layout/components/SocialCallback/index.vue index 17a7631..723d593 100644 --- a/src/layout/components/SocialCallback/index.vue +++ b/src/layout/components/SocialCallback/index.vue @@ -18,22 +18,18 @@ 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 domain = route.query.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) { - let protocol = window.location.protocol === 'https:' ? 'https://' : 'http://'; - location.href = protocol + 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); }; @@ -65,6 +61,14 @@ const loginByCode = async (data: LoginData) => { }; const init = async () => { + // 如果域名不相等 则重定向处理 + let host = window.location.host; + if (domain !== host) { + let urlFull = new URL(window.location.href); + urlFull.hostname = domain; + window.location.href = urlFull.toString(); + } + const data: LoginData = { socialCode: code, socialState: state, diff --git a/src/views/login.vue b/src/views/login.vue index 0bb9a3f..02c7d77 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -194,7 +194,7 @@ const doSocialLogin = (type: string) => { authBinding(type).then((res: any) => { if (res.code === HttpStatus.SUCCESS) { // 获取授权地址跳转 - window.location.href = res.data + '&tenantId=' + loginForm.value.tenantId; + window.location.href = res.data + '&tenantId=' + loginForm.value.tenantId + '&domain=' + window.location.host; } else { ElMessage.error(res.msg); } diff --git a/src/views/system/user/profile/thirdParty.vue b/src/views/system/user/profile/thirdParty.vue index 3d489b4..ad090c4 100644 --- a/src/views/system/user/profile/thirdParty.vue +++ b/src/views/system/user/profile/thirdParty.vue @@ -86,7 +86,7 @@ const unlockAuth = (row: any) => { const authUrl = (source: string) => { authBinding(source).then((res: any) => { if (res.code === 200) { - window.location.href = res.data + '&tenantId=' + useUserStore().tenantId; + window.location.href = res.data + '&tenantId=' + useUserStore().tenantId + '&domain=' + window.location.host; } else { proxy?.$modal.msgError(res.msg); }