Files
Avtex/apps/web/app/middleware/admin.ts
T

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')
}
})