/* Auth process: User Requests Key => Server emails key to user => user opens link to auth.html => website POSTs key to server => Server checks validity => Server responds with the users auth key => auth.js adds this to localStorage */ const cmd = document.getElementById("cmd") // Assign element to const init(); // Run init function async function sendHome(){ await delay(2000); location.replace('/') } async function cmdOut(message) { html = "
" + message + "
" cmd.insertAdjacentHTML("beforeend", html) } async function registerKey(key) { // Posts key to server and listens for response. var url = `${window.location.origin}/api/v1/register/register`; let res = await fetch(url, { // The response will contain the UUID which will be registered method: "POST", headers: { "Content-Type": "application/json" }, redirect: "follow", body: JSON.stringify(key) }) if (res.JSON['result'] == "ok"){ localStorage.setItem("uuid", res.JSON['uuid']); return true; } else { return false; } } async function checkAuth(key) { const url = `${window.location.origin}/api/v1/auth/test`; const res = await fetch(url, { method: "GET", redirect: "follow", headers: { "uuid": key } }) return res.status === 200 ? true : false } async function init(){ // Reads registration key from query, and calls registerKey(key) cmdOut("Reading registration key"); const key = await getQuery("key"); cmdOut(`Temporary: ${key}`) cmdOut("Requesting API Key from server"); let res = await registerKey(key); console.log(JSON.stringify(res)) cmdOut("Checking key validity") checkAuth(localStorage.getItem("uuid")) ? cmdOut("Authentication succesful") : cmdOut("Authentication failed") }