// FIXME: This file should handle the auth redirection // Get the code from the URL parameters and redirect to the relevant page const params = new URLSearchParams(window.location.search); const code = params.get("code"); const form = new FormData(); form.append("client_id", import.meta.env.VITE_CLIENT_ID); form.append("redirect_uri", `${import.meta.env.VITE_URL}/complete/epita/`); form.append("grant_type", "authorization_code"); form.append("code", code); const config = { method: "POST", body: form, }; export async function getToken() { try { const res = await fetch( `${import.meta.env.VITE_URL}/auth-api/token`, config, ); const response = await res.json(); const token = response.id_token; localStorage.setItem("token", token); localStorage.setItem("refresh_token", response.refresh_token); window.location.replace(import.meta.env.VITE_URL); return true; } catch (error) { console.log(error); return false; } } if (!code) { const authQueryParams = { client_id: import.meta.env.VITE_CLIENT_ID, scope: "epita profile picture", redirect_uri: `${import.meta.env.VITE_URL}/complete/epita/`, response_type: "code", }; const url = new URL( `?client_id=${authQueryParams.client_id}&scope=${authQueryParams.scope}&redirect_uri=${authQueryParams.redirect_uri}&response_type=${authQueryParams.response_type}`, `${import.meta.env.VITE_AUTH_URL}/authorize`, ); window.location.replace(url); } else { getToken(); }