diff --git a/src/auth.js b/src/auth.js index 5e81aeb..6da0f1c 100644 --- a/src/auth.js +++ b/src/auth.js @@ -23,6 +23,38 @@ function setUserData(userData, userToken) { // Функция для загрузки данных пользователя, если токен есть (например, при обновлении страницы) async function fetchUser() { if (token.value) { + // Проверяем, есть ли информация о блокировке в localStorage + const blockedInfoStr = localStorage.getItem('accountBlockedInfo'); + if (blockedInfoStr) { + try { + const blockedInfo = JSON.parse(blockedInfoStr); + if (blockedInfo.blocked) { + console.log('[Auth] Обнаружена информация о блокировке в localStorage, выполняем выход'); + + // Показываем уведомление о блокировке + const notificationEvent = new CustomEvent('show-toast', { + detail: { + message: blockedInfo.message || 'Ваш аккаунт заблокирован администратором.', + type: 'error', + duration: 10000 + } + }); + window.dispatchEvent(notificationEvent); + + // Выходим из системы + await logout(); + + // Перенаправляем на страницу входа с параметром блокировки + router.replace({ path: '/login', query: { blocked: 'true' } }); + return; + } + } catch (error) { + console.error('[Auth] Ошибка при парсинге информации о блокировке:', error); + // Удаляем поврежденные данные + localStorage.removeItem('accountBlockedInfo'); + } + } + try { console.log('Пытаемся загрузить пользователя с токеном из localStorage...'); const response = await api.getMe(); // Используем наш API сервис