From cc8155229ca86b7c56afedde33009b6cbac6a203 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Thu, 21 May 2020 10:13:54 -0700 Subject: [PATCH] Add JavaScript handling for the recently-added login form The HTML for this login form isn't seen here. It exists inside of lmno-server. --- lmno.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lmno.js b/lmno.js index 4af9878..5cd5802 100644 --- a/lmno.js +++ b/lmno.js @@ -11,6 +11,37 @@ ${message} message_area.insertAdjacentHTML('beforeend', message); } +function lmno_login_loadend(request, username) { + if (request.status === 404) { + add_message("danger", "User authentication failed. Please try again."); + return; + } + + /* Now that user is logged in, advance to the desired page (if any). */ + const url = new URL(window.location); + const next_param = url.searchParams.get('next'); + if (next_param) { + window.location.href = next_param; + return; + } + + /* Otherwise, just report the successful login. */ + add_message("success", `User ${username} logged in. Have fun.`); +} + +function lmno_login(form) { + const username = form.username.value; + const password = form.password.value; + + console.log("In lmno_login with username: " + username); + var request = new XMLHttpRequest(); + request.addEventListener("loadend", () => lmno_login_loadend(request, username)); + + request.open("POST", "/login"); + request.setRequestHeader("Content-Type", "application/json; charset=UTF-8"); + request.send(`{"username": "${username}", "password": "${password}"}`); +} + function lmno_join_loadend(request, game_id) { if (request.status === 404) { add_message("danger", game_id + " is not a valid game ID. Try again."); -- 2.43.0