Проверяет понимание семантики HTTP-методов при работе с аутентификацией и выдачей токенов доступа.
HTTP-методы имеют строгую семантику, и её нарушение приводит к проблемам с безопасностью, кэшированием и идемпотентностью. Метод GET предназначен для безопасного и идемпотентного чтения ресурса: он не должен менять состояние сервера и не должен содержать чувствительных данных в URL. Выдача токена — это создание нового ресурса (сессии или токена), то есть операция, изменяющая состояние, поэтому семантически это POST.
Стандарт OAuth 2.0 явно требует POST для эндпоинта выдачи токена. Учётные данные передаются в теле запроса, обычно в формате application/x-www-form-urlencoded или JSON.
POST /oauth/token HTTP/1.1
Host: api.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=password&username=user&password=secret&client_id=appОтвет сервера содержит сам токен и метаданные:
{
"access_token": "eyJhbGciOi...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "def50200..."
}Иногда для обновления токена используют отдельный эндпоинт, но метод остаётся POST, так как refresh_token тоже обменивается на новый access_token и меняет состояние сервера.
Для получения токена всегда используйте POST: это соответствует семантике HTTP, защищает учётные данные от утечки через URL и логи и совпадает со стандартом OAuth 2.0.
Уровень
Рейтинг:
4
Сложность:
3
Навыки
JavaScript
Networks
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию