auth.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. export default defineNuxtRouteMiddleware((to) => {
  2. // SSR에서는 middleware 실행 안 함 (클라이언트에서만)
  3. if (import.meta.server) {
  4. return
  5. }
  6. // Admin 페이지가 아니면 middleware 실행 안 함
  7. if (!to.path.startsWith('/admin')) {
  8. return
  9. }
  10. const token = localStorage.getItem('admin_token')
  11. console.log('[Auth Middleware]', {
  12. path: to.path,
  13. hasToken: !!token,
  14. token: token ? token.substring(0, 20) + '...' : null
  15. })
  16. // 로그인 페이지는 예외 처리
  17. if (to.path === '/admin' || to.path === '/admin/') {
  18. // 이미 로그인된 경우 대시보드로
  19. if (token) {
  20. console.log('[Auth] 이미 로그인됨, dashboard로 이동')
  21. return navigateTo('/admin/dashboard')
  22. }
  23. console.log('[Auth] 로그인 페이지 접근 허용')
  24. return
  25. }
  26. // Admin 페이지 접근 시 토큰 체크
  27. if (!token) {
  28. console.log('[Auth] 토큰 없음, 로그인 페이지로 이동')
  29. return navigateTo('/admin')
  30. }
  31. console.log('[Auth] 토큰 확인됨, 페이지 접근 허용')
  32. })