diff --git a/plugins/api.ts b/plugins/api.ts index bdca257..0975c08 100644 --- a/plugins/api.ts +++ b/plugins/api.ts @@ -1,10 +1,19 @@ +import {Preferences} from "@capacitor/preferences"; + export default defineNuxtPlugin(() => { const api = $fetch.create({ - baseURL: /*"http://localhost:3100"*/ "https://backend.fedeo.io", + baseURL: /*"http://192.168.1.227:3100"*/ "https://backend.fedeo.io", credentials: "include", - onRequest({ options }) { + async onRequest({options}) { // Token aus Cookie holen - let token = useCookie("token").value + let token: string | null | undefined = "" + if (await useCapacitor().getIsNative()) { + const {value} = await Preferences.get({key: 'token'}); + token = value + } else { + token = useCookie("token").value + } + // Falls im Request explizit ein anderer JWT übergeben wird → diesen verwenden if (options.context && (options.context as any).jwt) { diff --git a/stores/auth.ts b/stores/auth.ts index 6a260c7..883d0ed 100644 --- a/stores/auth.ts +++ b/stores/auth.ts @@ -1,5 +1,6 @@ import { defineStore } from "pinia" import router from "#app/plugins/router"; +import {Preferences} from "@capacitor/preferences"; export const useAuthStore = defineStore("auth", { state: () => ({ @@ -23,7 +24,15 @@ export const useAuthStore = defineStore("auth", { method: "POST", body: { email, password } }) - useCookie("token").value = token // persistieren + if(await useCapacitor().getIsNative()) { + await Preferences.set({ + key:"token", + value: token, + }) + } else { + useCookie("token").value = token // persistieren + + } await this.fetchMe(token) }, @@ -38,7 +47,13 @@ export const useAuthStore = defineStore("auth", { this.profile = null this.activeTenant = null this.tenants = [] - useCookie("token").value = null + if(useCapacitor().getIsNative()) { + await Preferences.remove({ key: 'token' }); + + } else { + useCookie("token").value = null + } + navigateTo("/login") }, @@ -79,11 +94,23 @@ export const useAuthStore = defineStore("auth", { async switchTenant(tenant_id: string) { this.loading = true - const { token } = await useNuxtApp().$api("/api/tenant/switch", { + const res = await useNuxtApp().$api("/api/tenant/switch", { method: "POST", body: { tenant_id } }) - useCookie("token").value = token + console.log(res) + + const {token} = res + + if(await useCapacitor().getIsNative()) { + await Preferences.set({ + key:"token", + value: token, + }) + } else { + useCookie("token").value = token // persistieren + + } await this.init(token) navigateTo("/") },