diff --git a/composables/users.ts b/composables/users.ts index ffe98b25..73c4f3f3 100644 --- a/composables/users.ts +++ b/composables/users.ts @@ -88,7 +88,12 @@ async function loginTo(user?: Omit & { account?: AccountCr } } - if ('server' in route.params && user?.token && !useNuxtApp()._processingMiddleware) { + // This only cleans up the URL; page content should stay the same + if (route.path === '/signin/callback') { + await router.push('/home') + } + + else if ('server' in route.params && user?.token && !useNuxtApp()._processingMiddleware) { await router.push({ ...route, force: true, diff --git a/plugins/masto.ts b/plugins/masto.ts index a3cecbed..1fd0ac5b 100644 --- a/plugins/masto.ts +++ b/plugins/masto.ts @@ -2,8 +2,7 @@ export default defineNuxtPlugin(async (nuxtApp) => { const masto = createMasto() if (process.client) { - const { query, path } = useRoute() - const router = useRouter() + const { query } = useRoute() const user = typeof query.server === 'string' && typeof query.token === 'string' ? { server: query.server, @@ -14,13 +13,8 @@ export default defineNuxtPlugin(async (nuxtApp) => { nuxtApp.hook('app:suspense:resolve', () => { // TODO: improve upstream to make this synchronous (delayed auth) - if (!masto.loggedIn.value) { - masto.loginTo(user).then(() => { - // This only cleans up the URL; page content should stay the same - if (path === '/signin/callback') - router.push('/home') - }) - } + if (!masto.loggedIn.value) + masto.loginTo(user) }) }