31 lines
830 B
TypeScript
31 lines
830 B
TypeScript
|
|
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 = ""
|
|
|
|
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 } }
|
|
}) |