feat(auth): demo-логин ≥6 симв, MultiAuthenticator, UUID v5, v1.3.26

This commit is contained in:
“Naeel”
2026-05-02 19:45:10 +04:00
parent 94a4eea50b
commit dbd35e11ff
5 changed files with 94 additions and 12 deletions
+8 -2
View File
@@ -13,7 +13,9 @@ async function doLogin() {
var errEl = document.getElementById('l-error');
var token = (document.getElementById('l-token').value || '').trim();
var env = document.getElementById('l-env').value;
if (!token) { errEl.textContent = 'Введите токен'; errEl.style.display = 'block'; return; }
if (!token) { errEl.textContent = 'Введите токен или логин'; errEl.style.display = 'block'; return; }
var isJWT = token.split('.').length === 3 && !token.includes(' ');
if (!isJWT && token.length < 6) { errEl.textContent = 'Логин — не менее 6 символов'; errEl.style.display = 'block'; return; }
btn.disabled = true;
errEl.style.display = 'none';
try {
@@ -26,8 +28,11 @@ async function doLogin() {
const d = await res.json().catch(function () { return {}; });
throw new Error(d.error || 'Ошибка входа');
}
const data = await res.json();
localStorage.setItem('auth_token', token);
localStorage.setItem('auth_env', env);
if (data.email) localStorage.setItem('auth_email', data.email);
else localStorage.removeItem('auth_email');
setUserAvatar(token);
hideLoginOverlay();
// Проверяем статус NS — если не ready, показываем init overlay
@@ -58,7 +63,7 @@ function jwtEmail(token) {
function setUserAvatar(token) {
var el = document.getElementById('user-avatar');
if (!el) return;
var email = token ? jwtEmail(token) : null;
var email = localStorage.getItem('auth_email') || (token ? jwtEmail(token) : null);
if (email) {
el.textContent = email;
el.title = email;
@@ -82,6 +87,7 @@ function setUserAvatar(token) {
function doLogout() {
localStorage.removeItem('auth_token');
localStorage.removeItem('auth_env');
localStorage.removeItem('auth_email');
try { document.getElementById('l-token').value = ''; } catch (_) { }
setUserAvatar(null);
showLoginOverlay();