diff options
Diffstat (limited to 'interface/public/login.js')
| -rw-r--r-- | interface/public/login.js | 39 |
1 files changed, 39 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"); + } + }); + } +} |
