18 lines
445 B
TypeScript
18 lines
445 B
TypeScript
export default defineNuxtRouteMiddleware((to) => {
|
|
const auth = useAuthStore()
|
|
|
|
// Gestion de la 404
|
|
if (to.matched.length === 0) {
|
|
return
|
|
}
|
|
// 1. Liste des pages publiques
|
|
const isPublicPage = to.meta.public as boolean
|
|
|
|
// 2. Si pas de token et page protégée -> Redirection /403
|
|
if (!auth.isLoggedIn && !isPublicPage) {
|
|
throw createError({
|
|
statusCode: 403,
|
|
statusMessage: "Accès refusé" }
|
|
)
|
|
}
|
|
}) |