Как настроить аутентификацию через OAuth для API сайта?
OAuth 2.0 не передаёт логин и пароль пользователя напрямую: приложение получает от сервера авторизации временный код, обменивает его на токен доступа и уже этим токеном подтверждает запросы к API. Для веб-сайта стандартный сценарий — authorization code с обязательным PKCE, для машинных интеграций без участия человека — client credentials. Настройка сводится к четырём шагам: регистрируете приложение у провайдера, получаете идентификатор и секрет клиента, прописываете точный адрес перенаправления, затем на бэкенде меняете полученный код на токен доступа и токен обновления.
Практический порядок действий: выберите тип grant под свой сценарий, задайте минимально необходимые scope, держите секрет клиента только на сервере и никогда в браузерном коде, обменивайте код на токен строго по HTTPS, храните токены в защищённом хранилище с шифрованием и обновляйте их заранее, до истечения срока жизни. Адрес перенаправления должен совпадать с зарегистрированным символ в символ, включая схему и завершающий слэш, иначе провайдер вернёт ошибку ещё до выдачи кода.
Ключевой нюанс: access token — короткоживущий и предъявляется в заголовке Authorization со словом Bearer, а refresh token — долгоживущий и применяется только на сервере. Проверяйте подпись и срок действия токена на стороне API, ограничивайте scope по принципу минимальных прав и предусмотрите обработку ответа 401 с повторным обновлением токена или повторной авторизацией пользователя.
