BUGFIX-004-02: Восстановление сессии из localStorage при mount (F5)

Что сделать

Убедиться что AuthProvider при mount (F5) восстанавливает сессию из localStorage — проверяет токен, вызывает getMe(), устанавливает user в state.

Конкретно

AuthProvider useEffect

  • При mount: прочитать access_token из localStorage через getTokens()
  • Если токен есть → вызвать getMe() (или GET /api/v1/admin/auth/me) с этим токеном
  • Если getMe() успешен → установить user в state, isAuthenticated: true
  • Если getMe() падает (401) → попробовать refresh token → если refresh успешен → повторить getMe()
  • Если refresh тоже падает → очистить токены, isAuthenticated: false

authFetch interceptor

  • Проверить что authFetch (или axios interceptor) автоматически подставляет Authorization: Bearer <token> из localStorage
  • Проверить что interceptor обрабатывает 401 → пробует refresh → retry запроса

Состояние загрузки

  • Пока AuthProvider проверяет сессию — показывать loading (не redirect на /login)
  • isLoading: true в AuthContext пока идёт проверка

Файлы

  • web/src/contexts/AuthContext.tsx — useEffect при mount, getMe(), loading state
  • web/src/api/client.ts — authFetch interceptor, token из localStorage