aboutsummaryrefslogtreecommitdiff
path: root/interface/public/login.js
diff options
context:
space:
mode:
Diffstat (limited to 'interface/public/login.js')
-rw-r--r--interface/public/login.js39
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");
+ }
+ });
+ }
+}