acl.global.ts 685 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('/') // atau ke '/dashboard' misalnya
    }
  }
})