summaryrefslogtreecommitdiff
path: root/graphs/js/oidc/complete/epita/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'graphs/js/oidc/complete/epita/index.js')
-rw-r--r--graphs/js/oidc/complete/epita/index.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/graphs/js/oidc/complete/epita/index.js b/graphs/js/oidc/complete/epita/index.js
new file mode 100644
index 0000000..513197c
--- /dev/null
+++ b/graphs/js/oidc/complete/epita/index.js
@@ -0,0 +1,40 @@
+window.END_SESSION_URL = "https://cri.epita.fr/end-session";
+const reqInfosBtn = document.getElementById("RequestBtn");
+const params = new URLSearchParams(window.location.search);
+const code = params.get("code");
+
+let form = new FormData();
+
+form.append("client_id", "assistants-atelier-js");
+form.append("redirect_uri", "http://localhost:8080/complete/epita/");
+form.append("grant_type", "authorization_code");
+form.append("code", code);
+const tokenEndpoint = "http://localhost:8080/auth-api";
+reqInfosBtn.addEventListener("click", async () => {
+ let response = await fetch(tokenEndpoint, {
+ method: "POST",
+ body: form,
+ });
+ const responsePretty = await response.json();
+ const token = responsePretty.id_token;
+ const content = token.split(".")[1];
+ const b64 = content.replace(/-/g, "+").replace(/_/g, "/");
+ const payload = JSON.parse(window.atob(b64));
+
+ document.getElementById("name").innerHTML = payload.name;
+ document.getElementById("campus").innerHTML = payload.zoneinfo;
+ document.getElementById("grad-year").innerHTML = payload.graduation_years;
+ document
+ .getElementById("image")
+ .setAttribute("src", payload.picture_square);
+ const ul = document.getElementById("list");
+ for (const group of payload.groups) {
+ const item = document.createElement("li");
+ item.innerHTML = group.slug + " " + group.name;
+ ul.appendChild(item);
+ }
+});
+
+document
+ .getElementById("EndBtn")
+ .addEventListener("click", () => window.location.replace(END_SESSION_URL));