16.05.2026 00:00

Client Credentials Flow

Client Credentials Flow используется, когда пользователь не участвует в процессе. В этом сценарии серверное приложение получает access_token от имени самого приложения и затем обращается к API как доверенный клиент.

Этот flow подходит только для confidential-клиентов, у которых есть client_secret. Не используйте его в браузере, SPA, мобильном приложении или любом месте, где секрет может увидеть пользователь.

Что подготовить

Получите client_id и client_secret, убедитесь, что для клиента разрешен grant type client_credentials, и заранее согласуйте набор доступных scope. Сервис выдаст токен только с разрешениями, которые назначены клиенту.

Получение токена приложения

Запрос отправляется методом POST в формате application/x-www-form-urlencoded.

curl -X POST https://auth.regos.uz/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id=your_client_id" \
  -d "client_secret=your_client_secret"

Успешный ответ содержит только access_token. В этом сценарии нет пользователя, поэтому REGOS не выдает id_token и refresh_token.

{
  "access_token": "eyJ...access_token",
  "token_type": "Bearer",
  "expires_in": 600,
  "scope": "allowed.scope another.scope"
}

Используйте expires_in из ответа, чтобы понять, когда нужно запросить новый токен. Когда токен истек, повторите тот же запрос с client_id и client_secret.

Использование токена

Передавайте токен в API в заголовке:

Authorization: Bearer eyJ...access_token

Такой токен не подходит для /oauth/userinfo, потому что он не связан с конкретным пользователем. Если вам нужен профиль пользователя, используйте Authorization Code Flow.