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 };
});
/*