Use musicSession cookie for auth

This commit is contained in:
lucast committed 2026-10-02 00:20:38 +02:00
1 parent e2c47e6d0f
commit e89463591c
8 files changed
+80 -104

No files matched your search

+11 -11
View File
@@ -60,23 +60,23 @@ export const cfetch = async <DataT = any>(
headers.delete("Content-Type")
}
if (authorize) {
const { sessionToken, refreshSessionToken } = useAuth()
let token = sessionToken.value
if (!token) token = await refreshSessionToken()
if (token) headers.set("Authorization", `Bearer ${token}`)
}
try {
return (await $fetch(toApiUrl(url), requestOptions as any)) as DataT
} catch (error: any) {
if (!authorize || error?.response?.status !== 401) throw error
const token = await useAuth().refreshSessionToken()
if (!token) throw error
const refreshed = await useAuth().refreshSession()
if (!refreshed.ok) throw error
if (import.meta.server && refreshed.sessionCookie) {
const cookies = (headers.get("cookie") ?? "")
.split(";")
.map((cookie) => cookie.trim())
.filter((cookie) => cookie && !cookie.startsWith("musicSession="))
cookies.push(refreshed.sessionCookie)
headers.set("cookie", cookies.join("; "))
}
headers.set("Authorization", `Bearer ${token}`)
return (await $fetch(toApiUrl(url), requestOptions as any)) as DataT
}
}