Как сделать защищенные роуты в nuxt? С помощью auth middleware не получается:
middleware/auth.global.ts:
export default defineNuxtRouteMiddleware((to, from) => {
const isLoggedIn = process.client
? localStorage.getItem("isLoggedIn") === "true"
: "false";
if (to.path !== from.path) {
return;
}
if (!isLoggedIn && to.path !== "/login") {
return navigateTo("/login");
} else if (to.path !== "/" && isLoggedIn) {
return navigateTo("/");
}
});
По идее, если не isLoggedIn=> login, иначе если isLoggedIn и роут равен /login => /. Тут проблема в том, что будучи не isLoggedIn можно переходить по другим роутам, одним словом это логика работает только для /login и /, нужно написать проверку для всех роутов по отдельности? Чтоб, если isLoggedIn=false => нужно перенаправить на /login и остальные роуты тоже должны перенаправить, а иначе сделать /login disabled.