Files
simrsx-fe/app/middleware/auth.global.ts

19 lines
530 B
TypeScript

export default defineNuxtRouteMiddleware((to) => {
const { $pinia } = useNuxtApp()
if (import.meta.client) {
const userStore = useUserStore($pinia)
console.log('currRole', userStore.userRole)
console.log('isAuth', userStore.isAuthenticated)
if (!userStore.isAuthenticated) {
return navigateTo('/auth/login')
}
const allowedRoles = to.meta.roles as string[] | undefined
if (allowedRoles && !allowedRoles.includes(userStore.userRole)) {
return navigateTo('/unauthorized')
}
}
})