Files
sori.studio/middleware/admin-auth.global.js

18 lines
570 B
JavaScript

/**
* 관리자 페이지 접근 인증
* @param {import('#app').RouteLocationNormalized} to - 이동 대상 라우트
* @returns {Promise<ReturnType<typeof navigateTo> | void>} 라우트 이동 결과
*/
export default defineNuxtRouteMiddleware(async (to) => {
if (!to.path.startsWith('/admin') || to.path.startsWith('/admin/api') || to.path === '/admin/login') {
return
}
try {
const requestFetch = import.meta.server ? useRequestFetch() : $fetch
await requestFetch('/admin/api/auth/me')
} catch {
return navigateTo('/admin/login')
}
})