diff options
| author | Bobby <[email protected]> | 2022-05-01 01:02:38 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-05-01 01:02:38 -0400 |
| commit | b0b1938f0e2ae2d159f0a616f8043d0b7f24f2eb (patch) | |
| tree | 71ed919b888e83fb49d619d1ba338dcba43b245c /interface/public | |
| parent | fd8acf8d1b04368763a97d1452565aa71dcc118a (diff) | |
| parent | d527bddaeb3083d2a5ec787626e512eb45d3a967 (diff) | |
| download | Welfare-Schemes-DMQL-b0b1938f0e2ae2d159f0a616f8043d0b7f24f2eb.tar.xz Welfare-Schemes-DMQL-b0b1938f0e2ae2d159f0a616f8043d0b7f24f2eb.zip | |
Merge pull request #4 from luciferreeves/main
Main page changes
Diffstat (limited to 'interface/public')
| -rw-r--r-- | interface/public/login.js | 39 | ||||
| -rw-r--r-- | interface/public/logout.js | 5 | ||||
| -rw-r--r-- | interface/public/router.js | 7 | ||||
| -rw-r--r-- | interface/public/verify.js | 21 |
4 files changed, 72 insertions, 0 deletions
diff --git a/interface/public/login.js b/interface/public/login.js new file mode 100644 index 0000000..3396f81 --- /dev/null +++ b/interface/public/login.js @@ -0,0 +1,39 @@ +$(".ui.form").form({ + fields: { + username: "empty", + password: "empty", + }, +}); + +function login(event) { + event.preventDefault(); + const username = $("#username").val().trim(); + const password = $("#password").val().trim(); + + // make sure username is a-zA-Z0-9 + if (!username.match(/^[a-zA-Z0-9]+$/)) { + alert("Username must be alphanumeric"); + return; + } else { + // make request to /api/login + fetch("/api/login", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + username, + password, + }), + }).then((response) => { + if (response.status === 200) { + response.json().then((data) => { + localStorage.setItem("token", data.token); + window.location.href = "/"; + }); + } else { + alert("Invalid username or password"); + } + }); + } +} diff --git a/interface/public/logout.js b/interface/public/logout.js new file mode 100644 index 0000000..401f06d --- /dev/null +++ b/interface/public/logout.js @@ -0,0 +1,5 @@ +function logout(event) { + event.preventDefault(); + localStorage.removeItem("token"); + window.location.href = "/"; +} diff --git a/interface/public/router.js b/interface/public/router.js new file mode 100644 index 0000000..23f8115 --- /dev/null +++ b/interface/public/router.js @@ -0,0 +1,7 @@ +function route(page) { + if (!localStorage.getItem("token")) { + $("#loginButton").click(); + } else { + window.location.href = page; + } +}
\ No newline at end of file diff --git a/interface/public/verify.js b/interface/public/verify.js new file mode 100644 index 0000000..94025f8 --- /dev/null +++ b/interface/public/verify.js @@ -0,0 +1,21 @@ +const token = localStorage.getItem("token"); +if (token) { + fetch("/api/verify", { + method: "POST", + headers: { + Authorization: `Bearer ${token}`, + } + }).then(response => { + if (response.status === 200) { + $('#loginButton').hide(); + $('#logoutButton').show(); + } else { + window.location.href = "/"; + $('#loginButton').show(); + $('#logoutButton').hide(); + } + }); +} else { + $('#loginButton').show(); + $('#logoutButton').hide(); +} |
