acl.global.ts
675 Bytes
import { defineNuxtRouteMiddleware, navigateTo } from 'nuxt/app'
import { useKeycloakStore } from '~/@core/stores/keycloakStore'
export default defineNuxtRouteMiddleware(to => {
const keycloakStore = useKeycloakStore()
if (process.client) {
const isLoginPage = to.path === '/login'
// Jika belum login dan bukan sedang menuju halaman login, redirect ke login
if (!keycloakStore.authenticated && !isLoginPage)
return navigateTo('/login')
// Kalau sudah login dan mencoba ke /login, bisa arahkan ke dashboard atau home
if (keycloakStore.authenticated && isLoginPage)
return navigateTo('/profile') // atau ke '/dashboard' misalnya
}
})