Files
Link-Log/frontend/static/login.js
T

33 lines
987 B
JavaScript

// Copyright © 2026 Olaf Kolkman
// SPDX-License-Identifier: GPL-3.0-or-later
const form = document.querySelector('#login-form');
const status = document.querySelector('#login-status');
const otpInput = document.querySelector('#otp');
form.addEventListener('submit', async (event) => {
event.preventDefault();
status.textContent = 'Signing in...';
status.style.color = '#334155';
const response = await fetch('/api/auth/login', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
...Object.fromEntries(new FormData(form)),
otp: otpInput.value.trim() || null,
}),
});
if (!response.ok) {
const result = await response.json().catch(() => ({}));
status.textContent = result.detail || 'Sign-in failed.';
status.style.color = '#b91c1c';
return;
}
const data = await response.json();
localStorage.setItem('linklogAccessToken', data.access_token);
window.location.assign('/profile');
});