From c9b6b9a5ca082fe7c1b6f58d7713f785a9eb6a5c Mon Sep 17 00:00:00 2001 From: Martial Simon Date: Mon, 15 Sep 2025 01:08:27 +0200 Subject: add: graphs et rushs --- graphs/js/storageWars/storageWars.js | 80 ++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 graphs/js/storageWars/storageWars.js (limited to 'graphs/js/storageWars/storageWars.js') diff --git a/graphs/js/storageWars/storageWars.js b/graphs/js/storageWars/storageWars.js new file mode 100644 index 0000000..ed90536 --- /dev/null +++ b/graphs/js/storageWars/storageWars.js @@ -0,0 +1,80 @@ +/* FIXME */ +const userInfo = document.getElementById("userInfo"); +const userName = document.getElementById("name"); +const userEmail = document.getElementById("email"); +const userAge = document.getElementById("age"); +const errorBox = document.getElementById("error"); +const jwtField = document.getElementById("inputJWT"); + +localStorage.clear(); + +function displayError() { + errorBox.innerHTML = "Invalid token"; + if (localStorage.getItem("token")) { + localStorage.removeItem("token"); + } + + userInfo.style.display = "none"; +} + +function decodeToken() { + if (localStorage.getItem("token") != null) { + // parse the token + try { + const token = localStorage.getItem("token"); + const content = token.split(".")[1]; + const b64 = content.replace(/-/g, "+").replace(/_/g, "/"); + const payload = decodeURIComponent(window.atob(b64)); + + return JSON.parse(payload); + } catch { + displayError(); + } + } else { + return null; + } +} + +function addToken() { + /* FIXME */ + localStorage.setItem("token", jwtField.value); + display(); +} + +function display() { + errorBox.innerHTML = ""; + if (localStorage.getItem("token") === "") { + displayError(); + return; + } + + // validity check + const dec = decodeToken(); + + if (dec == null || Date.now() < dec.iat * 1000) { + displayError(); + return; + } + + userInfo.style.display = "inherit"; + if (dec["name"] != undefined) { + userName.innerHTML = dec["name"]; + } else { + userName.innerHTML = "No name"; + } + + if (dec["email"] != undefined) { + userEmail.innerHTML = dec["email"]; + } else { + userEmail.innerHTML = "No email"; + } + + if (dec["age"] != undefined) { + userAge.innerHTML = dec["age"]; + } else { + userAge.innerHTML = "No age"; + } +} + +window.addToken = addToken; +display(); -- cgit v1.2.3