diff --git a/js/login.js b/js/login.js new file mode 100644 index 0000000..8e2a194 --- /dev/null +++ b/js/login.js @@ -0,0 +1,20 @@ +async function login() { + let r = (await post("/login",{ + user: document.getElementById("user").value, + pass: document.getElementById("pass").value + })) + if(!r.url.endsWith("/user")) { + document.getElementById("pass").value = "" + console.error("login failed") + alert("Login failed, please make sure you have the right password") + return; + } + window.location = "/user" +} + +let passfield = document.getElementById("pass") +function passkeydown(e) { + if(e.code == "Enter") { + login() + } +} \ No newline at end of file diff --git a/js/register.js b/js/register.js new file mode 100644 index 0000000..0e26472 --- /dev/null +++ b/js/register.js @@ -0,0 +1,37 @@ +async function register() { + if(document.getElementById("pass").value.length < 10) { + alert("Password has to be at least 10 characters long") + return; + } + if(document.getElementById("user").value.length > 25) { + alert("Username is too long!") + return; + } + if(document.getElementById("user").value.search("@") != -1) { + alert("User cannot contain '@' character!") + return; + } + let r = (await post("/register",{ + user: document.getElementById("user").value, + pass: document.getElementById("pass").value + })) + console.log(r) + if(!r.url.endsWith("/user?success=true")) { + if(r.url.endsWith("already_exists")) { + alert("An account with that name already exists! Did you mean to login?") + return + } + //fallback + document.getElementById("pass").value = "" + console.error("registration failed") + alert("Registration failed") + return; + } + window.location = "/user" +} + +function passkeydown(e) { + if(e.code == "Enter") { + register() + } +} \ No newline at end of file diff --git a/views/login.html b/views/login.html index 770c0ab..765505c 100644 --- a/views/login.html +++ b/views/login.html @@ -4,15 +4,9 @@ <%- newrelic %> - +
@@ -20,22 +14,25 @@