summaryrefslogtreecommitdiff
path: root/graphs/js/storageWars/storageWars.js
diff options
context:
space:
mode:
authorMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:08:27 +0200
committerMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:08:27 +0200
commitc9b6b9a5ca082fe7c1b6f58d7713f785a9eb6a5c (patch)
tree3e4f42f93c7ae89a364e4d51fff6e5cec4e55fa9 /graphs/js/storageWars/storageWars.js
add: graphs et rushs
Diffstat (limited to 'graphs/js/storageWars/storageWars.js')
-rw-r--r--graphs/js/storageWars/storageWars.js80
1 files changed, 80 insertions, 0 deletions
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();