diff --git a/src/pages/IndexPage.vue b/src/pages/IndexPage.vue index 130a0a7..211a597 100644 --- a/src/pages/IndexPage.vue +++ b/src/pages/IndexPage.vue @@ -7,16 +7,11 @@
{{ listaStore.pb.authStore.token }}
{{ listaStore.pb.authStore.model.id }}
- Cerrar + Cerrar diff --git a/src/router/index.js b/src/router/index.js index ca3cd61..f8b725a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,6 +1,12 @@ -import { route } from 'quasar/wrappers' -import { createRouter, createMemoryHistory, createWebHistory, createWebHashHistory } from 'vue-router' -import routes from './routes' +import { route } from "quasar/wrappers"; +import { + createRouter, + createMemoryHistory, + createWebHistory, + createWebHashHistory, +} from "vue-router"; +import routes from "./routes"; +import { useListaStore } from "../stores/lista.js"; /* * If not building with SSR mode, you can @@ -14,7 +20,9 @@ import routes from './routes' export default route(function (/* { store, ssrContext } */) { const createHistory = process.env.SERVER ? createMemoryHistory - : (process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory) + : process.env.VUE_ROUTER_MODE === "history" + ? createWebHistory + : createWebHashHistory; const Router = createRouter({ scrollBehavior: () => ({ left: 0, top: 0 }), @@ -23,8 +31,21 @@ export default route(function (/* { store, ssrContext } */) { // Leave this as is and make changes in quasar.conf.js instead! // quasar.conf.js -> build -> vueRouterMode // quasar.conf.js -> build -> publicPath - history: createHistory(process.env.VUE_ROUTER_BASE) - }) + history: createHistory(process.env.VUE_ROUTER_BASE), + }); - return Router -}) + Router.beforeEach(async (to, from, next) => { + const listaStore = useListaStore(); + if (to.meta.auth) { + //Si es una ruta protegida + + if (listaStore.pb.authStore.isValid) { + return next(); //Si es protegida y el token es válido + } + return next("/login"); //Si es protegida y el token no es válido + } + next(); + }); + + return Router; +}); diff --git a/src/stores/lista.js b/src/stores/lista.js index 245bc95..6e848e3 100644 --- a/src/stores/lista.js +++ b/src/stores/lista.js @@ -5,7 +5,7 @@ import PocketBase from "pocketbase"; export const useListaStore = defineStore("lista", () => { const pb = new PocketBase("https://pocketbase.clonbg.es"); const authData = ref(""); - async function login(email, password) { + function login(email, password) { authData.value = pb .collection("users") .authWithPassword(email, password) @@ -17,8 +17,11 @@ export const useListaStore = defineStore("lista", () => { console.log("error"); }); } + async function refresh() { + const authData = await pb.collection("users").authRefresh(); + } - return { pb, authData, login }; + return { pb, authData, login, refresh }; }); /*