Files
vue-pult/temp_auth_diff.txt
2025-10-01 11:54:13 +03:00

142 lines
5.3 KiB
Plaintext

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,