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
  }
})