diff --git a/src/lib/web.ts b/src/lib/web.ts index 9ffda9f9..b681b2bb 100644 --- a/src/lib/web.ts +++ b/src/lib/web.ts @@ -8,3 +8,11 @@ export function getBasePath(): string { return path.substring(0, lastSlashIndex); } + +export function navigateToHomePage(type: 'desktop' | 'mobile'): void { + if (__EZBOOKKEEPING_IS_PRODUCTION__) { + window.location.replace(`${type}#/`); + } else { + window.location.replace(`${type}.html#/`); + } +} diff --git a/src/views/desktop/OAuth2CallbackPage.vue b/src/views/desktop/OAuth2CallbackPage.vue index 52c7f901..16da18db 100644 --- a/src/views/desktop/OAuth2CallbackPage.vue +++ b/src/views/desktop/OAuth2CallbackPage.vue @@ -24,7 +24,7 @@

{{ oauth2LoginDisplayName }}

-

{{ tt('Logging in...') }}

+

{{ tt('Logging in...') }}

{{ tt('format.misc.oauth2bindTip', { providerName: oauth2ProviderDisplayName, userName: userName }) }}

{{ tt(error) }}

{{ tt('An error occurred') }}

@@ -42,12 +42,12 @@ :label="tt('Password')" :placeholder="tt('Your password')" v-model="password" - @keyup.enter="verify" + @keyup.enter="verifyAndLogin" /> - + {{ tt('Continue') }} @@ -109,6 +109,7 @@ import { ThemeType } from '@/core/theme.ts'; import { APPLICATION_LOGO_PATH } from '@/consts/asset.ts'; import { KnownErrorCode } from '@/consts/api.ts'; +import { navigateToHomePage } from '@/lib/web.ts'; import { isUserVerifyEmailEnabled, getOAuth2Provider, @@ -157,7 +158,17 @@ const inputProblemMessage = computed(() => { } }); -function verify(): void { +function navigateToHome(): void { + if (props.platform === 'desktop') { + navigateToHomePage('desktop'); + } else if (props.platform === 'mobile') { + navigateToHomePage('mobile'); + } else { + router.replace('/'); + } +} + +function verifyAndLogin(): void { const problemMessage = inputProblemMessage.value; if (problemMessage) { @@ -174,7 +185,7 @@ function verify(): void { }).then(authResponse => { logining.value = false; doAfterLogin(authResponse); - router.replace('/'); + navigateToHome(); }).catch(error => { logining.value = false; @@ -189,16 +200,16 @@ function verify(): void { }); } -if (!props.error && props.platform && props.token && !props.userName) { +if (!props.error && props.platform && props.provider && props.token && !props.userName) { logining.value = true; rootStore.authorizeOAuth2({ - provider: props.provider || '', - token: props.token || '' + provider: props.provider, + token: props.token }).then(authResponse => { logining.value = false; doAfterLogin(authResponse); - router.replace('/'); + navigateToHome(); }).catch(error => { logining.value = false;