Как защитить статику при авторизации через токен?

Добрый день.

Есть SPA-приложение на React-е. Авторизация на Backend приложения производится с помощью OAuth2-авторизации Google, Facebook,...

Последовательность действий следующая:
1. В браузер загружается index.html и инициализируется React-приложение.
2. Проверяется localStorage на наличие access- и refresh-токенов. Если токены есть, то выполняется запрос на Backend (с access-токеном) для получения информации о пользователе.
3. Если Backend отвечает 403 ошибкой, то используются access- и refresh-токены.
4. Если с refresh-токеном Backend опять возвращает 403 ошибку, то пользователь переводится на страницу с кнопками авторизации "Continue with Google" и остальными.
5. После успешной OAuth-авторизации на Google, Backend получает пользовательские Имя и E-mail, генерирует access- и refresh-токены и перенаправляет пользователя на страницу login.html, задача которого записать токены в localStorage и сделать редирект на index.html.

Этот механизм отлично работает, и React-приложение обновляет свои токены при выполнении XHR-запросов на Backend.
Теперь мне нужно каким-то образом авторизовать браузер пользователя, запрашивающий с сервера статику (картинки, документы,...).

- Подсунуть заголовки в запрос я не могу;
- Использовать access-токен как параметр в ссылке на статику тоже не могу - время его жизни короткое, пользователь может быть авторизован давно, а запросить статику только сейчас;
- Использовать оба токена так же бессмысленно, т.к. не смогу обработать заголовки.

Остается использовать куку, которую можно запросто утянуть. Подскажите как лучше сделать.
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы