node-ejs-renderer/views/login.ejs
2024-06-09 13:55:01 -04:00

33 lines
1.2 KiB
Plaintext

<header>
<h1>Login</h1>
</header>
<main>
<form id="loginForm" method="POST" action="/api/login">
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
<button type="submit">Login</button>
</form>
<p id="message"></p>
</main>
<script>
document.getElementById('loginForm').addEventListener('submit', async function(event) {
event.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (response.ok) {
document.cookie = `token=${result.token}; path=/;`;
window.location.href = '/';
} else {
document.getElementById('message').textContent = result.error;
}
});
</script>