add dashboard

This commit is contained in:
Litlyx
2024-06-01 15:27:40 +02:00
parent 75f0787c3b
commit df4faf366f
201 changed files with 91267 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
import type { AuthContext } from "~/server/middleware/01-authorization";
async function executeUserLogin(token: string): Promise<[true, AuthContext] | [false, null]> {
const user = await $fetch<AuthContext>('/api/user/me', { headers: { 'Authorization': 'Bearer ' + token } });
console.log('USER RESPSONSE', user);
if (!user) return [false, null];
if (user.logged == false) return [false, null];
return [true, user];
}
async function handleUserLogin(authContext?: AuthContext) {
if (authContext) return;
const { token, setToken } = useAccessToken();
if (!token.value || token.value.length == 0) {
setToken(''); // LOGOUT
return;
}
const [ok, newContext] = await executeUserLogin(token.value);
if (!ok) {
setToken(''); // LOGOUT
return;
}
setLoggedUser(newContext);
}
export default defineNuxtRouteMiddleware(async (to, from) => {
if (!to.name) return;
const loggedUser = useLoggedUser();
await handleUserLogin(loggedUser.value);
if (loggedUser.value?.logged) {
if (to.path == '/login') return '/';
} else {
if (to.path != '/login' && to.path != '/live_demo') return '/login';
}
})