Files
frontend/app/middleware/auth.ts
T
reloia f32fa8620b style: remove unnecessary inline comments
Removed Italian and redundant inline comments across multiple files.
2026-06-16 18:30:40 +02:00

28 lines
772 B
TypeScript

export default defineNuxtRouteMiddleware(async (to) => {
const auth = useAuth()
if ((auth.token.value || auth.tokenState.value) && !auth.user.value && !auth.isSyncingUser.value) {
try {
await auth.syncUser({ currentPath: to.path })
} catch (error) {
console.error('[Auth Middleware] Sync failed:', error)
return navigateTo('/auth/login')
}
}
if (!auth.isAuthenticated.value) {
return navigateTo('/auth/login')
}
const requiredRole = to.meta.auth?.role
if (requiredRole && auth.user.value) {
const userRole = auth.user.value.role
if (!hasMinimumRole(userRole, requiredRole)) {
console.warn(`[Auth] User role ${userRole} insufficient for required ${requiredRole}`)
return navigateTo('/')
}
}
})