You've already forked AstralRinth
forked from didirus/AstralRinth
* refactor: migrate to common eslint+prettier configs * fix: prettier frontend * feat: config changes * fix: lint issues * fix: lint * fix: type imports * fix: cyclical import issue * fix: lockfile * fix: missing dep * fix: switch to tabs * fix: continue switch to tabs * fix: rustfmt parity * fix: moderation lint issue * fix: lint issues * fix: ui intl * fix: lint issues * Revert "fix: rustfmt parity" This reverts commit cb99d2376c321d813d4b7fc7e2a213bb30a54711. * feat: revert last rs
34 lines
723 B
TypeScript
34 lines
723 B
TypeScript
const whitelistedParams = ['flow', 'error']
|
|
|
|
export default defineNuxtRouteMiddleware(async (_to, from) => {
|
|
const config = useRuntimeConfig()
|
|
const auth = await useAuth()
|
|
|
|
if (auth.value.user) return
|
|
|
|
const fullPath = from.fullPath
|
|
|
|
const url = new URL(fullPath, config.public.apiBaseUrl)
|
|
|
|
const extractedParams = Object.create(null) as Record<string, string>
|
|
|
|
for (const param of whitelistedParams) {
|
|
const val = url.searchParams.get(param)
|
|
if (val != null) {
|
|
extractedParams[param] = val
|
|
url.searchParams.delete(param)
|
|
}
|
|
}
|
|
|
|
return await navigateTo(
|
|
{
|
|
path: '/auth/sign-in',
|
|
query: {
|
|
redirect: `${url.pathname}${url.search}`,
|
|
...extractedParams,
|
|
},
|
|
},
|
|
{ replace: true },
|
|
)
|
|
})
|