Вопрос проверяет понимание механизмов аутентификации и авторизации в клиентских приложениях.
Access token хранится в памяти или LocalStorage для доступа к API. Refresh token хранится в HttpOnly cookie для безопасного обновления. Токен автоматически добавляется в заголовки запросов и обновляется при истечении.
Схема работы:
Пользователь вводит credentials
Сервер возвращает access и refresh tokens
Access token хранится в клиенте
Refresh token хранится в HttpOnly cookie
При истечении access token автоматически обновляется
Безопасное хранение:
Access token: localStorage или memory
Refresh token: HttpOnly cookie
Защита от CSRF и XSS атак
Автоматическое обновление:
// Интерцептор для axios
axios.interceptors.response.use(
response => response,
async error => {
if (error.response.status === 401) {
const newToken = await refreshToken();
// Повтор запроса с новым токеном
}
return Promise.reject(error);
}
);Best practices:
Короткое время жизни access token
Secure и HttpOnly флаги для cookies
Валидация токенов на сервере
Защита от replay attacks