$('#loginForm').on('submit', function (e) {
e.preventDefault();
const username = $('#username').val();
const password = $('#password').val();
$.ajax({
url: '/login',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ username, password }),
success: function (result) {
if (result.success) {
localStorage.setItem('token', result.token);
// detect admin from explicit server flag or token payload
let isAdmin = false;
if (result.isAdmin) isAdmin = true;
if (result.token) {
try {
const payload = JSON.parse(atob(result.token.split('.')[1]));
if (payload.role === 'admin' || payload.isAdmin) isAdmin = true;
} catch (e) {}
}
if (isAdmin) {
// redirect to admin page
window.location.href = '/admin';
return;
}
// normal user page
updateUI(true);
showStatus('Logged in successfully!');
loadQuota();
} else {
showError(result.message || 'Invalid Credentials');
}
}, error: function (xhr, status, error) {
console.log('Login error:', { xhr, status, error }); // Debug
const msg = xhr.responseJSON?.message || 'Login failed: ' + error || 'Unknown error';
$('#error').text(msg).addClass('visible');
$('#status').text('').removeClass('visible');
setTimeout(function () {
$('#error').fadeOut(500, function () {
$(this).removeClass('visible').css('display', 'none');
});
}, 3000);
}
});
});
Вот фрагмент кода, в котором мне интересно, почему перенаправление не работает для входа администратора, чтобы перейти непосредственно на панель администратора. Этот поток позволяет пользователю перейти на обычную страницу пользователя, но администратор должен быть перенаправлен для перехода непосредственно на страницу администратора, а не на страницу обычного пользователя. Он не перенаправляется на страницу администратора при входе в систему с учетными данными администратора.
// detect admin from explicit server flag or token payload let isAdmin = false; if (result.isAdmin) isAdmin = true; if (result.token) { try { const payload = JSON.parse(atob(result.token.split('.')[1])); if (payload.role === 'admin' || payload.isAdmin) isAdmin = true; } catch (e) {} }
if (isAdmin) { // redirect to admin page window.location.href = '/admin'; return; }
// normal user page updateUI(true); showStatus('Logged in successfully!'); loadQuota(); } else { showError(result.message || 'Invalid Credentials'); } }, error: function (xhr, status, error) { console.log('Login error:', { xhr, status, error }); // Debug const msg = xhr.responseJSON?.message || 'Login failed: ' + error || 'Unknown error'; $('#error').text(msg).addClass('visible'); $('#status').text('').removeClass('visible'); setTimeout(function () { $('#error').fadeOut(500, function () { $(this).removeClass('visible').css('display', 'none'); }); }, 3000); } }); }); [/code] Вот фрагмент кода, в котором мне интересно, почему перенаправление не работает для входа администратора, чтобы перейти непосредственно на панель администратора. Этот поток позволяет пользователю перейти на обычную страницу пользователя, но администратор должен быть перенаправлен для перехода непосредственно на страницу администратора, а не на страницу обычного пользователя. Он не перенаправляется на страницу администратора при входе в систему с учетными данными администратора.