diff --git a/slowcord/login/public/js/handler.js b/slowcord/login/public/js/handler.js index aabc7a4c..68a656b4 100644 --- a/slowcord/login/public/js/handler.js +++ b/slowcord/login/public/js/handler.js @@ -16,6 +16,18 @@ const handleSubmit = async (path, body) => { 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 diff --git a/slowcord/login/public/login.html b/slowcord/login/public/login.html index b2c1b229..8cecd20b 100644 --- a/slowcord/login/public/login.html +++ b/slowcord/login/public/login.html @@ -27,8 +27,7 @@

Login failed

- -
+ @@ -42,9 +41,18 @@ Login with Discord -
+
+ +
+ + + + + + +
@@ -66,7 +74,7 @@ token = window.localStorage.getItem("token"); if (token) window.location.href = "/app"; - document.forms[0].addEventListener("submit", async (e) => { + document.forms["login"].addEventListener("submit", async (e) => { const data = new FormData(e.target); const email = data.get("email"); const password = data.get("password"); @@ -78,6 +86,17 @@ 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, + }); + })