Программирование [Евгений Паромов] Аутентификация: access token, refresh token

Регистрация
7 Апр 2025
Сообщения
10,778
Реакции
81
Автор: Евгений Паромов​
Название: Аутентификация: access token, refresh token​

cover.jpg

Продолжительность: 3 ч 50 мин Количество уроков: 1 Видео Язык: Русский Вес архива: 80 КБ


В этом материале мы расширяем и углубляем темы курса, чтобы дать более структурированное и практичное понимание процессов аутентификации, работы с access и refresh токенами, а также настройки безопасной среды для клиент‑серверного взаимодействия. Текст можно использовать как основную статью курса или как методическое дополнение.

Что такое токены и как они применяются в веб‑аутентификации

Токены — это ключи доступа, которые позволяют пользователю выполнять запросы к защищённым ресурсам без постоянной передачи логина и пароля.

Access token

Краткоживущий токен, позволяющий направлять авторизованные запросы к API. Основная задача — минимизировать риск компрометации.

Refresh token

Долгоживущий токен, применяемый для безопасного обновления access token. Часто хранится в более защищённой среде.

JWT: преимущества, ограничения и практические рекомендации

JSON Web Token (JWT) — популярный формат токена, позволяющий хранить полезную нагрузку внутри себя.

Преимущества JWT

• Самодостаточность: вся необходимая информация содержится в токене.
• Широкая поддержка серверных и клиентских технологий.
• Высокая скорость проверки подписи на сервере.

Недостатки JWT

• Невозможность отзыва без отдельного механизма чёрного списка.
• Переполнение полезной нагрузки может снизить производительность.
• Повышенный риск компрометации при неправильном хранении.

Организация механизма обновления токенов

Правильная работа с refresh token — ключ к безопасности и удобству пользователей.

Алгоритм обновления access token

• Клиент обнаруживает истечение access token (ошибка 401 или собственная проверка).
• Отправляет запрос на обновление, передавая refresh token.
• Получает новый access token (и при необходимости новый refresh token).
• Повторяет исходный запрос после обновления.

Обработка состояния гонки при обновлении токена

Состояние гонки возникает, когда несколько запросов одновременно пытаются обновить токен. Актуально для SPA и мобильных приложений.

Рекомендации

• Использовать очередь запросов на обновление.
• Запоминать обещание обновления токена и возвращать его повторно при повторных запросах.
• Блокировать повторные попытки обновления до завершения текущей операции.

Где хранить токены: cookies или localStorage

Хранение токенов — наиболее критичный аспект безопасности фронтенда.

Хранение в cookies

• Поддержка httpOnly повышает защиту от XSS.
• Возможна автоматическая передача токенов браузером.
• Нужна настройка SameSite и Secure.

Хранение в localStorage

• Простота доступа со стороны JavaScript.
• Удобно при кастомной логике работы токенов.
• Менее безопасно из‑за опасности XSS.

Безопасные настройки куков для продакшена

Настройка куков — обязательный этап повышения уровня безопасности приложения.

Ключевые параметры

httpOnly — блокирует доступ к кукам из JavaScript.
secure — передача только по HTTPS.
sameSite — защита от CSRF; значения Lax, Strict, None.
domain и path — ограничивают доступность кука.

Работа с CORS и SameSite

При организации аутентификации между фронтендом и API на разных доменах важно учитывать влияние CORS и настроек куков.

Распространённые проблемы

• Некорректный заголовок Access-Control-Allow-Credentials.
• Отсутствие Access-Control-Allow-Origin (или использование * при credentials=true).
• Куки блокируются браузером из‑за SameSite=None без secure.

Решения

• Настроить CORS для конкретного домена фронтенда.
• Использовать SameSite=None и secure для междоменной аутентификации.
• Корректно обрабатывать preflight-запросы.

Обработка ошибок авторизации

Ошибки аутентификации должны быть мягкими, предсказуемыми и безопасными.

Ключевые сценарии

• Истёкший access token — триггер обновления.
• Истёкший refresh token — выход пользователя и запрос повторной авторизации.
• Неверный токен — очистка хранилища и защита от атак.

Итог: как построить безопасную и надёжную систему аутентификации

Чтобы добиться устойчивой и безопасной аутентификации, важно комплексно сочетать грамотную работу токенов, корректную настройку куков, защиту от XSS/CSRF и продуманную обработку ошибок. Освоив эти подходы, вы сможете проектировать доверенные системы, адаптируемые к реальным условиям продакшена.

СКАЧАТЬ:
 📥 Скрытое содержимое! Войдите или Зарегистрируйтесь
 

Похожие темы

10,840Темы
10,893Сообщения
787Пользователи
Ganna!Новый пользователь
Сверху