Files
FEDEO/plugins/api.ts

33 lines
1.0 KiB
TypeScript

import {Preferences} from "@capacitor/preferences";
export default defineNuxtPlugin(() => {
const api = $fetch.create({
baseURL: /*"http://192.168.1.227:3100"*/ "https://backend.fedeo.io",
credentials: "include",
async onRequest({options}) {
// Token aus Cookie holen
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) {
token = (options.context as any).jwt
}
if (token) {
options.headers = {
...options.headers,
Authorization: `Bearer ${token}`,
}
}
}
})
return { provide: { api } }
})