[#34] added ky and condition to reconnect user on refresh

This commit is contained in:
Camille Moussu
2025-07-15 16:56:43 +02:00
parent aa3ecff9ef
commit 7507d09d72
9 changed files with 762 additions and 946 deletions
+37
View File
@@ -0,0 +1,37 @@
import ky from "ky";
import { Auth } from "../features/User/oidcAuth";
export const api = ky.extend({
prefixUrl: (window as any).CALENDAR_BASE_URL,
hooks: {
beforeRequest: [
async (request) => {
const saved = sessionStorage.getItem("tokenSet")
? JSON.parse(sessionStorage.getItem("tokenSet")!)
: null;
const access_token = saved?.access_token;
const modifiedRequest = new Request(request);
modifiedRequest.headers.set("Authorization", `Bearer ${access_token}`);
return modifiedRequest;
},
],
afterResponse: [
async (request, options, response) => {
if (response.status === 401) {
// Attempt token refresh on unauthorized response
const loginurl = await Auth();
sessionStorage.setItem(
"tokenSet",
JSON.stringify({
code_verifier: loginurl.code_verifier,
state: loginurl.state,
})
);
window.location.assign(loginurl.redirectTo);
}
},
],
},
});