feat: Create authorization

This commit is contained in:
2026-01-20 11:32:05 +01:00
parent 3dda2fefc2
commit 240be41dc7
10 changed files with 999 additions and 399 deletions

View File

@@ -19,13 +19,13 @@ const router = createRouter({
{
path: '/',
component: MainMenuView,
meta: { requiresAuth: true },
meta: { requiresAuth: false },
children: [
{
path: '',
name: 'mainmenu',
component: defaultMenu,
meta: { requiresAuth: true }
meta: { requiresAuth: false }
},
{
path: 'create',
@@ -43,7 +43,7 @@ const router = createRouter({
path: 'rules',
name: 'rules-Game',
component: rulesView,
meta: {requiresAuth: true }
meta: {requiresAuth: false }
},
],
},
@@ -83,19 +83,16 @@ const router = createRouter({
router.beforeEach(async (to, from, next) => {
const info = useUserInfo();
const isOnline = navigator.onLine;
if (to.name === 'offline') {
if (isOnline) {
try {
await info.requestState();
if (!info.username) {
info.clearUserInfo();
return next('/login');
}
return next({ name: 'mainmenu' });
} catch (err) {
info.clearUserInfo();
return next('/login');
@@ -104,28 +101,27 @@ router.beforeEach(async (to, from, next) => {
return next();
}
}
if (!isOnline) {
return next({ name: 'offline' });
}
if (!to.meta.requiresAuth) return next();
try {
await info.requestState();
if (!info.username) {
info.clearUserInfo();
return next('/login');
}
if (info.gameId && to.name !== 'game') {
return next({ name: 'game' });
}
next();
} catch (err) {
info.clearUserInfo();
next('/login');
console.error("Routing Error", err);
info.clearUserInfo();
next('/login');
}
});