раздел 02

Аутентификация и лимиты

Большинство API не отдают данные кому попало. Сначала сервис должен понять, кто вы, - это и есть аутентификация. Способы разные, но идея одна: вы прикладываете к запросу что-то, что вас опознаёт.

API-ключ

Самый простой вариант. Сервис выдаёт вам длинную строку - ключ, вроде sk_live_8fJ2k.... Вы прикладываете его к каждому запросу, и сервис понимает, что это вы. Ключ часто передают в заголовке.

Bearer-токен

Сейчас это самый частый способ. Токен (тот же ключ или выданный отдельно) передают в заголовке Authorization со словом Bearer:

GET /v1/orders HTTP/1.1
Host: api.example.com
Authorization: Bearer ВАШ_ТОКЕН

Слово Bearer переводится как «предъявитель»: кто предъявил токен, того и пускают. Поэтому токен и нужно беречь, как ключ от квартиры.

OAuth (кратко)

Когда нужно действовать от имени пользователя (например, прочитать его письма или фото), используют OAuth. Грубо: пользователь на сайте сервиса нажимает «Разрешить», и сервис выдаёт вашему приложению временный токен на конкретные действия. Пароль пользователя вы при этом не видите. Это та самая кнопка «Войти через Google».

API-ключ
Одна строка-пароль на ваше приложение. Просто, для своих интеграций.
Bearer-токен
Токен в заголовке Authorization. Самый частый способ сегодня.
OAuth
Доступ от имени пользователя с его разрешения. Без передачи пароля.

Лимиты запросов (rate limits)

Сервисы ограничивают, сколько запросов вы можете слать за период - например, 100 запросов в минуту. Это защита от перегрузки. Если вы превысили лимит, в ответ придёт код 429 (Too Many Requests). Решение - слать запросы реже или делать паузу и пробовать снова.

Безопасность ключа

Ключ или токен - это пароль. Кто его получил, тот ходит в сервис от вашего имени и тратит ваши лимиты и деньги.

Правильная схема такая: ключ лежит в .env, код читает его оттуда по имени переменной, а в репозиторий попадает только .env.example без реальных значений - как образец.