This commit is contained in:
@@ -27,22 +27,19 @@ function getRequestHeaders(): Record<string, string> {
|
||||
|
||||
// Проверяем наличие токена в localStorage
|
||||
const localToken = localStorage.getItem(AUTH_TOKEN_KEY)
|
||||
|
||||
// Используем только токен из localStorage (если есть)
|
||||
const token = localToken
|
||||
|
||||
// Проверяем наличие токена в cookie
|
||||
const cookieToken = getAuthTokenFromCookie()
|
||||
|
||||
// Используем токен из localStorage или cookie
|
||||
const token = localToken || cookieToken
|
||||
|
||||
// Если есть токен, добавляем его в заголовок Authorization с префиксом Bearer
|
||||
// Если есть токен в localStorage, добавляем его в заголовок Authorization с префиксом Bearer
|
||||
if (token && token.length > 10) {
|
||||
headers['Authorization'] = `Bearer ${token}`
|
||||
console.debug('Отправка запроса с токеном авторизации')
|
||||
console.debug('Отправка запроса с токеном авторизации из localStorage')
|
||||
console.debug(`[Frontend] Authorization header: Bearer ${token.substring(0, 20)}...`)
|
||||
} else {
|
||||
console.warn('[Frontend] Токен не найден или слишком короткий')
|
||||
console.debug('[Frontend] Токен в localStorage не найден, полагаемся на httpOnly cookie')
|
||||
console.debug(`[Frontend] Local token: ${localToken ? 'present' : 'missing'}`)
|
||||
console.debug(`[Frontend] Cookie token: ${cookieToken ? 'present' : 'missing'}`)
|
||||
// httpOnly cookie будет автоматически отправлен браузером благодаря credentials: 'include'
|
||||
}
|
||||
|
||||
// Добавляем CSRF-токен, если он есть
|
||||
|
||||
@@ -82,24 +82,22 @@ export function saveAuthToken(token: string): void {
|
||||
export function checkAuthStatus(): boolean {
|
||||
console.log('[Auth] Checking authentication status...')
|
||||
|
||||
// Проверяем наличие cookie auth_token
|
||||
const cookieToken = getAuthTokenFromCookie()
|
||||
const hasCookie = !!cookieToken && cookieToken.length > 10
|
||||
|
||||
// 💋 НЕ проверяем httpOnly cookie через JavaScript - он недоступен!
|
||||
// httpOnly cookie автоматически отправляется браузером, но недоступен для чтения
|
||||
|
||||
// Проверяем наличие токена в localStorage
|
||||
const localToken = localStorage.getItem(AUTH_TOKEN_KEY)
|
||||
const hasLocalToken = !!localToken && localToken.length > 10
|
||||
|
||||
const isAuth = hasCookie || hasLocalToken
|
||||
console.log(`[Auth] Cookie token: ${hasCookie ? 'present' : 'missing'}`)
|
||||
// 💋 Для httpOnly cookie полагаемся на backend проверку
|
||||
// Если нет токена в localStorage, считаем что пользователь может быть авторизован через httpOnly cookie
|
||||
// Окончательная проверка произойдет при первом GraphQL запросе
|
||||
const isAuth = hasLocalToken
|
||||
|
||||
console.log(`[Auth] Local token: ${hasLocalToken ? 'present' : 'missing'}`)
|
||||
console.log(`[Auth] Authentication status: ${isAuth ? 'authenticated' : 'not authenticated'}`)
|
||||
console.log(`[Auth] Authentication status: ${isAuth ? 'authenticated via localStorage' : 'unknown (may be authenticated via httpOnly cookie)'}`)
|
||||
|
||||
// Дополнительное логирование для диагностики
|
||||
if (cookieToken) {
|
||||
console.log(`[Auth] Cookie token length: ${cookieToken.length}`)
|
||||
console.log(`[Auth] Cookie token preview: ${cookieToken.substring(0, 20)}...`)
|
||||
}
|
||||
if (localToken) {
|
||||
console.log(`[Auth] Local token length: ${localToken.length}`)
|
||||
console.log(`[Auth] Local token preview: ${localToken.substring(0, 20)}...`)
|
||||
|
||||
Reference in New Issue
Block a user