Open ...\src\routes\index.ts You will find the below example code. In the below code, we have shown four different routes. MainRoutes is the main layout routing you see after login.
// routes\index.tsimport { createRouter, createWebHistory } from'vue-router';import MainRoutes from'./MainRoutes';import PublicRoutes from'./PublicRoutes';import ComponentRoutes from'./ComponentRoutes';import { useAuthStore } from'@/stores/auth';exportconstrouter=createRouter({ history:createWebHistory(import.meta.env.BASE_URL), routes: [ { path:'/:pathMatch(.*)*',component: () =>import('@/views/pages/maintenance/error/Error404Page.vue') }, PublicRoutes, MainRoutes, ComponentRoutes ]});router.beforeEach(async (to, from, next) => {// redirect to login page if not logged in and trying to access a restricted pageconstpublicPages= ['/'];constauth:AuthStore=useAuthStore();constisPublicPage=publicPages.includes(to.path);constauthRequired=!isPublicPage &&to.matched.some((record) =>record.meta.requiresAuth);// User not logged in and trying to access a restricted pageif (authRequired &&!auth.user) {auth.returnUrl =to.fullPath; // Save the intended pagenext('/login'); } elseif (auth.user &&to.path ==='/login') {// User logged in and trying to access the login pagenext({ query: {...to.query, redirect:auth.returnUrl !=='/'?to.fullPath :undefined } }); } else {// All other scenarios, either public page or authorized accessnext(); }});