diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2020-08-10 21:35:58 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2020-08-10 21:35:58 +0200 |
| commit | 2cfee78597971b2e3e7e612eb9d7e8805e1aef85 (patch) | |
| tree | b939d48347c7fff48d2a51761cb546c3b9ac6ec0 /src/server/wwwroot/login.js | |
| parent | 8614d18522441543e08c37c68121fed1fa8d6ae7 (diff) | |
| download | dough-2cfee78597971b2e3e7e612eb9d7e8805e1aef85.tar.xz dough-2cfee78597971b2e3e7e612eb9d7e8805e1aef85.zip | |
add signing credentials
Diffstat (limited to 'src/server/wwwroot/login.js')
| -rw-r--r-- | src/server/wwwroot/login.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/server/wwwroot/login.js b/src/server/wwwroot/login.js new file mode 100644 index 0000000..6f80a3f --- /dev/null +++ b/src/server/wwwroot/login.js @@ -0,0 +1,73 @@ +const form = document.querySelector("form"); +let errorEL = document.querySelector("#error"); +let titleEl = document.querySelector("#title"); +let messageEl = document.querySelector("#message"); +const loginBtn = document.querySelector("#login-btn"); +let returnUrl = new URL(location.href).searchParams.get("ReturnUrl"); +if(!returnUrl) location.href = "http://localhost:3000"; +form.addEventListener("submit", () => { + const username = document.querySelector("#username").value; + const password = document.querySelector("#password").value; + const persist = document.querySelector("#persist").checked; + + let data = { + username, + password, + returnUrl, + persist, + }; + + Util.addClass(loginBtn, "btn--state-b"); + + fetch("/account/login", { + method: "POST", + body: JSON.stringify(data), + credentials: "include", + headers: { + "Content-Type": "application/json;charset=utf-8", + RequestVerificationToken: document.querySelector( + "input[name='__RequestVerificationToken']" + ).value, + }, + }) + .then((response) => { + if (response.status === 400) { + response.json().then((res) => { + if (res.title && res.message) { + displayError(res.title, res.message); + } + }); + } else { + location.href = returnUrl; + } + }) + .catch((error) => console.error(error)); +}); + +function displayError(title, message) { + titleEl.innerText = title; + messageEl.innerText = message; + Util.addClass(errorEL, "alert--is-visible"); + Util.addClass(errorEL, "alert--error"); +} + +function hideError() { + Util.removeClass(errorEL, "alert--is-visible"); + Util.removeClass(errorEL, "alert--error"); +} + +let alertClose = document.getElementsByClassName("js-alert__close-btn"); +if (alertClose.length > 0) { + for (let i = 0; i < alertClose.length; i++) { + (function (i) { + initAlertEvent(alertClose[i]); + })(i); + } +} + +function initAlertEvent(element) { + element.addEventListener("click", function (event) { + event.preventDefault(); + Util.removeClass(element.closest(".js-alert"), "alert--is-visible"); + }); +}
\ No newline at end of file |
