diff options
Diffstat (limited to 'rushs/eplace/src/pages/complete')
| -rw-r--r-- | rushs/eplace/src/pages/complete/epita/index.html | 12 | ||||
| -rw-r--r-- | rushs/eplace/src/pages/complete/epita/index.js | 53 |
2 files changed, 65 insertions, 0 deletions
diff --git a/rushs/eplace/src/pages/complete/epita/index.html b/rushs/eplace/src/pages/complete/epita/index.html new file mode 100644 index 0000000..a6ebe75 --- /dev/null +++ b/rushs/eplace/src/pages/complete/epita/index.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <title>E/PLACE</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="icon" href="/favicon.ico" /> + <script type="module" src="index.js"></script> + </head> + <body></body> +</html> diff --git a/rushs/eplace/src/pages/complete/epita/index.js b/rushs/eplace/src/pages/complete/epita/index.js new file mode 100644 index 0000000..ced46cf --- /dev/null +++ b/rushs/eplace/src/pages/complete/epita/index.js @@ -0,0 +1,53 @@ +// 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(); +} |
