| import type { Router } from 'vue-router' | |
| import { useAuthStoreWithout } from '@/store/modules/auth' | |
| export function setupPageGuard(router: Router) { | |
| router.beforeEach(async (to, from, next) => { | |
| const authStore = useAuthStoreWithout() | |
| if (!authStore.session) { | |
| try { | |
| const data = await authStore.getSession() | |
| if (String(data.auth) === 'false' && authStore.token) | |
| authStore.removeToken() | |
| if (to.path === '/500') | |
| next({ name: 'Root' }) | |
| else | |
| next() | |
| } | |
| catch (error) { | |
| if (to.path !== '/500') | |
| next({ name: '500' }) | |
| else | |
| next() | |
| } | |
| } | |
| else { | |
| next() | |
| } | |
| }) | |
| } | |