Files
FEDEO/frontend/plugins/api.ts
2026-01-06 12:09:31 +01:00

35 lines
1.0 KiB
TypeScript

import {Preferences} from "@capacitor/preferences";
export default defineNuxtPlugin(() => {
const config = useRuntimeConfig()
const api = $fetch.create({
baseURL: config.public.apiBase,
credentials: "include",
async onRequest({options}) {
// Token aus Cookie holen
let token: string | null | undefined = ""
if (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 } }
})