diff --git a/client/src/composables/useAuth.js b/client/src/composables/useAuth.js index 8921f8d..eae07e6 100644 --- a/client/src/composables/useAuth.js +++ b/client/src/composables/useAuth.js @@ -1,6 +1,9 @@ import { ref, reactive } from 'vue' import { useRouter } from 'vue-router' import { useWebSocketGlobal } from './useWebSocketGlobal' +import { useLogger } from './useLogger' + +const logger = useLogger('Auth') // Глобальное состояние авторизации const isAuthenticated = ref(false) @@ -26,6 +29,8 @@ export function useAuth() { const router = useRouter() const { getGlobalSocket, closeGlobalSocket } = useWebSocketGlobal() + const loadingAuth = ref(false) + /** * Авторизация пользователя * @param {string} phone - номер телефона @@ -43,22 +48,19 @@ export function useAuth() { // Подготавливаем сообщение авторизации const authMessage = { do: "avt", - tip: "http-admin", + tip: "http-admin", login: phone.toString(), pass: password } // Отправляем запрос авторизации const response = await socket.sendMessage(authMessage) - - console.log('📥 Полный ответ авторизации:', response) - console.log('👥 Пользователи:', response.users || response.operators || response.data?.users || 'Нет списка') // Обрабатываем ответ if (response.do === 'avt' && response.user) { // Успешная авторизация const adminData = response.user - + // Сохраняем данные пользователя user._id = adminData._id user.fio = adminData.fio @@ -72,6 +74,12 @@ export function useAuth() { user.cdata = adminData.cdata user.rdata = adminData.rdata user.info = adminData.info || {} + + // Обрабатываем pauseInfo из ответа авторизации + if (response.pauseInfo) { + // Передаем в глобальное событие для обработки в useGamePorts + window.dispatchEvent(new CustomEvent('auth-pause-info', { detail: response.pauseInfo })) + } isAuthenticated.value = true @@ -101,7 +109,6 @@ export function useAuth() { // Сервер возвращает список в поле admins if (response.admins || response.users || response.operators) { const adminsList = response.admins || response.users || response.operators || {} - console.log('💾 Сохраняем список администраторов/операторов:', adminsList) localStorage.setItem('auth_response', JSON.stringify({ admins: adminsList })) @@ -183,22 +190,17 @@ export function useAuth() { * Проверка сохраненной авторизации */ const checkAuth = () => { - console.log('🔍 checkAuth: isAuthenticated =', isAuthenticated.value, 'user._id =', user._id) - // Сначала проверяем память if (isAuthenticated.value && user._id) { - console.log('✅ Пользователь уже авторизован в памяти') return true } // Если в памяти нет данных, проверяем localStorage try { const savedUserData = localStorage.getItem('user_data') - console.log('💾 Данные из localStorage:', savedUserData ? 'найдены' : 'не найдены') - + if (savedUserData) { const userData = JSON.parse(savedUserData) - console.log('👤 Восстанавливаем пользователя:', userData.fio) // Восстанавливаем данные пользователя user._id = userData._id @@ -215,32 +217,41 @@ export function useAuth() { user.info = userData.info || {} isAuthenticated.value = true - console.log('✅ Пользователь восстановлен из localStorage') return true } } catch (error) { - console.error('❌ Ошибка при восстановлении данных пользователя:', error) + logger.error('Ошибка при восстановлении данных пользователя:', error) localStorage.removeItem('user_data') } - console.log('❌ Пользователь не авторизован') + logger.warn('Пользователь не авторизован') return false } /** * Переавторизация */ - const reauth = () => { - return checkAuth() + const reauth = async () => { + loadingAuth.value = true + try { + return checkAuth() + } finally { + loadingAuth.value = false + } } + // Временная заглушка для роли пользователя (пока нет полной интеграции) + const userRole = ref('operators') // По умолчанию оператор + return { // Состояние isAuthenticated, user, authError, isLoading, - + loadingAuth, + userRole, + // Методы login, logout,