This commit is contained in:
2023-11-07 19:02:50 +01:00
commit aac376bb56
30 changed files with 852 additions and 0 deletions

10
plugins/auth.ts Normal file
View File

@@ -0,0 +1,10 @@
import { fetchCurrentUser, useUser } from '~/composables/useAuth'
export default defineNuxtPlugin(async () => {
const user = useUser()
// Skip if already initialized on server
if (user.value !== undefined) { return }
user.value = await fetchCurrentUser()
})

17
plugins/error-handler.ts Normal file
View File

@@ -0,0 +1,17 @@
import { FetchError } from 'ofetch'
export default defineNuxtPlugin(async (nuxtApp) => {
nuxtApp.hook('vue:error', (error) => {
if (!(error instanceof FetchError)) { throw error }
const status = error.response?.status ?? -1
if ([401, 419].includes(status)) {
navigateTo('/login')
}
if ([409].includes(status)) {
navigateTo('/verify-email')
}
})
})