18 lines
397 B
TypeScript
18 lines
397 B
TypeScript
export default defineNuxtRouteMiddleware(async (to) => {
|
|
if (to.path === '/login') return
|
|
|
|
const session = useState<{ id: string; email: string; name: string } | null>('session')
|
|
|
|
if (session.value === undefined) {
|
|
try {
|
|
session.value = await $fetch('/api/auth/me')
|
|
} catch {
|
|
session.value = null
|
|
}
|
|
}
|
|
|
|
if (!session.value) {
|
|
return navigateTo('/login')
|
|
}
|
|
})
|