35 lines
1020 B
TypeScript
35 lines
1020 B
TypeScript
import {useAuthStore} from "~/store/auth";
|
|
|
|
const publicUrl = [
|
|
"index",
|
|
"login",
|
|
"account-password-reset",
|
|
"account-password-confirm-reset",
|
|
"account-create",
|
|
"cgu"
|
|
]
|
|
|
|
export default defineNuxtRouteMiddleware((to) => {
|
|
const {authenticated} = storeToRefs(useAuthStore()); // make authenticated state reactive
|
|
// const token = useCookie('token'); // get token from cookies
|
|
const store = useAuthStore();
|
|
|
|
// if (token.value) {
|
|
// // check if value exists
|
|
// authenticated.value = true; // update the state to authenticated
|
|
// }
|
|
|
|
// if token exists and url is /login redirect to homepage
|
|
if (store.isLoggedIn && !store.isSessionExpired && to?.name === 'login') {
|
|
return navigateTo('/bundle');
|
|
}
|
|
|
|
console.info(`${store.isLoggedIn}, ${store.isSessionExpired}`)
|
|
|
|
// if token doesn't exist redirect to log in if not in public URL
|
|
if ((!store.isLoggedIn || store.isSessionExpired) && !publicUrl.includes(to?.name)) {
|
|
abortNavigation();
|
|
return navigateTo('/login');
|
|
}
|
|
});
|