16 lines
442 B
TypeScript
16 lines
442 B
TypeScript
export default defineNuxtRouteMiddleware((to, from) => {
|
|
const token = useCookie('xflow_token')
|
|
|
|
if (!token.value) return navigateTo('/login')
|
|
|
|
try {
|
|
const base64Url = token.value.split('.')[1]
|
|
const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/')
|
|
const payload = JSON.parse(window.atob(base64))
|
|
|
|
if (payload.role !== 'admin') return navigateTo('/')
|
|
} catch (e) {
|
|
return navigateTo('/login')
|
|
}
|
|
})
|