18 lines
570 B
JavaScript
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')
|
|
}
|
|
})
|