Ответ
Токен доступа обычно передается в HTTP-запросе одним из следующих способов, каждый из которых имеет свои особенности применения и уровень безопасности.
1. В заголовке Authorization (Наиболее распространенный и рекомендуемый способ)
Чаще всего используется схема Bearer.
GET /api/user/profile HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
2. В cookie (Для веб-приложений) Сервер устанавливает токен в cookie, который браузер автоматически отправляет с каждым запросом.
GET /dashboard HTTP/1.1
Host: example.com
Cookie: session_token=abc123def456; HttpOnly; Secure
- Плюсы: Удобство для браузерных SPA.
- Минусы: Риск CSRF-атак (требует дополнительных мер).
3. В теле запроса (Body) Используется реже, обычно для специфичных потоков (например, OAuth 2.0).
{
"grant_type": "refresh_token",
"refresh_token": "abc123...",
"client_id": "your_client_id"
}
4. В параметре URL (Query Parameter) — НЕ РЕКОМЕНДУЕТСЯ
GET /api/data?access_token=abc123 HTTP/1.1
- Критический недостаток: Токен остается в логах сервера, истории браузера и реферерах, что представляет угрозу безопасности.
Best Practice: Для API предпочтительно использовать заголовок Authorization: Bearer <token>. Для веб-приложений, работающих в браузере, часто применяется комбинация HttpOnly/Secure cookies для хранения токена и CSRF-токенов для защиты.