diff options
author | Madeline <46743919+MaddyUnderStars@users.noreply.github.com> | 2022-10-28 15:25:58 +1100 |
---|---|---|
committer | Madeline <46743919+MaddyUnderStars@users.noreply.github.com> | 2022-10-28 15:25:58 +1100 |
commit | 8d93693a38f55c442372cac8f76211f27a752d0b (patch) | |
tree | 7ea113bbef57508919cf3f31bbac6ef7a171ecfc /src-slowcord/login/public | |
parent | fix bad user validation (diff) | |
download | server-8d93693a38f55c442372cac8f76211f27a752d0b.tar.xz |
Move src-slowcord to own repo https://github.com/MaddyUnderStars/slowcord-services
Diffstat (limited to 'src-slowcord/login/public')
-rw-r--r-- | src-slowcord/login/public/css/index.css | 113 | ||||
-rw-r--r-- | src-slowcord/login/public/js/handler.js | 40 | ||||
-rw-r--r-- | src-slowcord/login/public/login.html | 127 | ||||
-rw-r--r-- | src-slowcord/login/public/register.html | 88 |
4 files changed, 0 insertions, 368 deletions
diff --git a/src-slowcord/login/public/css/index.css b/src-slowcord/login/public/css/index.css deleted file mode 100644 index cf294ccb..00000000 --- a/src-slowcord/login/public/css/index.css +++ /dev/null @@ -1,113 +0,0 @@ -/* Can you tell I like flexbox? */ - -html { - --background-primary: rgb(22, 23, 25); - --background-secondary: rgb(15, 16, 18); - --foreground-primary: rgb(200, 200, 200); - --background-login-discord: #5865f2; - - background: url("https://slowcord.maddy.k.vu/assets/background.png"); - background-size: 100% 100%; - background-repeat: no-repeat; - - font-family: "Montserrat", sans-serif; - - color: var(--foreground-primary); -} - -* { - margin: 0; - padding: 0; -} - -.content { - display: flex; - width: 100vw; - height: 100vh; - justify-content: flex-start; - align-items: center; -} - -.login { - height: 100%; - width: 25%; - min-width: 400px; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - - background-color: var(--background-primary); - - padding: 0 50px 0 50px; -} - -.header { - margin: 40px; - width: 100%; - text-align: center; - display: flex; - flex-direction: column; - justify-content: center; -} - -.header-subtext { - text-align: center; -} - -.header-subtext a, -.header-subtext p { - display: inline-block; - margin: 0 10px 0 10px; -} - -a { - color: var(--foreground-primary); -} - -form { - display: flex; - flex-direction: column; - justify-content: center; - width: 100%; - min-height: 50%; -} - -input, -form a { - background-color: var(--background-secondary); - padding: 10px; - margin: 5px 0 5px 0; - outline: none; - border: 1px solid grey; - color: var(--foreground-primary); - text-decoration: none; - cursor: pointer; -} - -form a { - text-align: center; -} - -label { - text-transform: uppercase; - font-size: 0.75rem; - font-weight: bold; -} - -#loginDiscord { - background-color: var(--background-login-discord); -} - -#failure { - width: 100%; - margin-top: 10px; - color: rgb(200, 20, 20); - display: none; -} - -.h-captcha { - display: flex; - justify-content: center; - margin-top: 10px; -} diff --git a/src-slowcord/login/public/js/handler.js b/src-slowcord/login/public/js/handler.js deleted file mode 100644 index 2d7b164b..00000000 --- a/src-slowcord/login/public/js/handler.js +++ /dev/null @@ -1,40 +0,0 @@ -const handleSubmit = async (path, body) => { - const failureMessage = document.getElementById("failure"); - - var response = await fetch(path, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify(body), - }); - - const json = await response.json(); - if (json.token) { - window.localStorage.setItem("token", `"${json.token}"`); - window.location.href = "/app"; - return; - } - - if (json.ticket) { - // my terrible solution to 2fa - const twoFactorForm = document.forms["2fa"]; - const loginForm = document.forms["login"]; - - twoFactorForm.style.display = "flex"; - loginForm.style.display = "none"; - - twoFactorForm.ticket.value = json.ticket; - return; - } - - // Very fun error message here lol - const error = json.errors - ? Object.values(json.errors)[0]._errors[0].message - : json.captcha_key - ? "Captcha required" - : json.message; - - failureMessage.innerHTML = error; - failureMessage.style.display = "block"; -}; diff --git a/src-slowcord/login/public/login.html b/src-slowcord/login/public/login.html deleted file mode 100644 index fa367b70..00000000 --- a/src-slowcord/login/public/login.html +++ /dev/null @@ -1,127 +0,0 @@ -<html lang="en"> - <head> - <meta charset="UTF-8" /> - <meta http-equiv="X-UA-Compatible" content="IE=edge" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Slowcord</title> - - <link rel="preconnect" href="https://fonts.googleapis.com" /> - <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> - <link - href="https://fonts.googleapis.com/css2?family=Montserrat&display=swap" - rel="stylesheet" - /> - - <link rel="stylesheet" href="./css/index.css" /> - <script src="js/handler.js"></script> - </head> - - <body> - <div class="content"> - <div class="login"> - <div class="header"> - <h1>Welcome to Slowcord</h1> - <div class="header-subtext"> - <p>Glad to see you <3</p> - <a href="/register">Wait, I'm new!</a> - </div> - - <p id="failure">Login failed</p> - </div> - - <form action="javascript:void(0);" name="login"> - <label for="email">Email</label> - <input type="email" name="email" /> - - <label for="password">Password</label> - <input type="password" name="password" /> - - <input type="submit" value="Login" /> - - <a - id="loginDiscord" - class="oauth" - href="https://discord.com/api/oauth2/authorize?client_id=991688571415175198&redirect_uri=https%3A%2F%2Fslowcord.maddy.k.vu%2Foauth%2Fdiscord&response_type=code&scope=identify%20email" - > - Login with Discord - </a> - - <div - class="h-captcha" - data-sitekey="fa3163ea-79a7-4b7b-b752-b58c545906c8" - data-theme="dark" - ></div> - <script - src="https://js.hcaptcha.com/1/api.js" - async - defer - ></script> - </form> - - <form - action="javascript:void(0);" - name="2fa" - style="display: none" - > - <label for="code">2FA Code</label> - <input type="number" name="code" /> - - <input type="hidden" name="ticket" /> - - <input type="submit" value="Login" /> - </form> - </div> - </div> - - <script> - /* https://stackoverflow.com/questions/5639346/what-is-the-shortest-function-for-reading-a-cookie-by-name-in-javascript */ - const getCookieValue = (name) => - document.cookie - .match("(^|;)\\s*" + name + "\\s*=\\s*([^;]+)") - ?.pop() || ""; - - let token = getCookieValue("token"); - if (token.trim().length) { - /* https://stackoverflow.com/a/27374365 */ - // why is clearing cookies so weird? wtf - document.cookie.split(";").forEach(function (c) { - document.cookie = c - .replace(/^ +/, "") - .replace( - /=.*/, - "=;expires=" + new Date().toUTCString() + ";path=/", - ); - }); - window.localStorage.setItem("token", `"${token}"`); - window.location.href = "/app"; - } - - token = window.localStorage.getItem("token"); - if (token) window.location.href = "/app"; - - document.forms["login"].addEventListener("submit", async (e) => { - const data = new FormData(e.target); - const email = data.get("email"); - const password = data.get("password"); - const hcaptcha = data.get("h-captcha-response"); - - await handleSubmit("/api/v9/auth/login", { - login: email, - password: password, - captcha_key: hcaptcha, - }); - }); - - document.forms["2fa"].addEventListener("submit", async (e) => { - const data = new FormData(e.target); - const code = data.get("code"); - const ticket = data.get("ticket"); - - await handleSubmit("/api/v9/auth/mfa/totp", { - code: code, - ticket: ticket, - }); - }); - </script> - </body> -</html> diff --git a/src-slowcord/login/public/register.html b/src-slowcord/login/public/register.html deleted file mode 100644 index 30b560a4..00000000 --- a/src-slowcord/login/public/register.html +++ /dev/null @@ -1,88 +0,0 @@ -<html lang="en"> - <head> - <meta charset="UTF-8" /> - <meta http-equiv="X-UA-Compatible" content="IE=edge" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Slowcord</title> - - <link rel="preconnect" href="https://fonts.googleapis.com" /> - <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> - <link - href="https://fonts.googleapis.com/css2?family=Montserrat&display=swap" - rel="stylesheet" - /> - - <link rel="stylesheet" href="./css/index.css" /> - <script src="js/handler.js"></script> - </head> - - <body> - <div class="content"> - <div class="login"> - <div class="header"> - <h1>Welcome to Slowcord</h1> - <div class="header-subtext"> - <p>You're new?</p> - <a href="/login">Actually, I'm not!</a> - </div> - - <p id="failure">Register failed</p> - </div> - - <form action="javascript:void(0);"> - <label for="email">Email</label> - <input type="email" name="email" /> - - <label for="username">Username</label> - <input type="username" name="username" /> - - <label for="password">Password</label> - <input type="password" name="password" /> - - <label for="dob">Date of Birth</label> - <input type="date" name="dob" /> - - <input type="submit" value="Register" /> - - <a - id="loginDiscord" - class="oauth" - href="https://discord.com/api/oauth2/authorize?client_id=991688571415175198&redirect_uri=https%3A%2F%2Fslowcord.maddy.k.vu%2Foauth%2Fdiscord&response_type=code&scope=identify%20email" - > - Login with Discord - </a> - - <div - class="h-captcha" - data-sitekey="fa3163ea-79a7-4b7b-b752-b58c545906c8" - ></div> - <script - src="https://js.hcaptcha.com/1/api.js" - async - defer - ></script> - </form> - </div> - </div> - - <script> - document.forms[0].addEventListener("submit", async (e) => { - const data = new FormData(e.target); - const email = data.get("email"); - const username = data.get("username"); - const password = data.get("password"); - const dob = data.get("dob"); - const hcaptcha = data.get("h-captcha-response"); - - await handleSubmit("/api/v9/auth/register", { - consent: true, - email: email, - username: username, - password: password, - date_of_birth: dob, - captcha_key: hcaptcha, - }); - }); - </script> - </body> -</html> |