Авторизация (OAuth)

OAuth-авторизация

Запрос на информацию о клиенте для отображения экрана согласия.

Запрос:

/oauth/authorize

Метод запроса: GET.

Параметры запроса:

Ответ:

Схема данных ответа (Schema): OAuthAuthorizeGetResponse.

Пример ответа:

{
  "client": {
    "time_created": 1742688000000,
    "time_updated": 1742788000000,
    "client_id": "P000000070",
    "user_id": "8e7537fc-7a37-4b80-b8b5-3178dde00e3b",
    "name": "РОСА Диск",
    "redirect_uri": "http://localhost"
  }
}

Возможные сообщения об ошибках:

Подтверждение OAuth-авторизации

Запрос на подтверждение согласия пользователя. Подтверждение или отклонение запроса авторизации пользователем.

Запрос:

/oauth/authorize

Метод запроса: POST.

Параметры запроса:

Пример тела запроса:

{
  "scope": "openid email profile",
  "response_type": "code",
  "client_id": "1",
  "redirect_uri": "https://myapp.example.com/oauth/callback",
  "accept": true
}

Ответ:

Схема данных ответа (Schema): OAuthAuthorizePostResponse.

Пример ответа:

{
  "redirect_url": "https://myapp.example.com/oauth/callback?code=abc123xyz"
}

Возможные сообщения об ошибках:

Получение токена клиента

Запрос на получение токена клиента (authorization_code или refresh_token).

Запрос:

/oauth/client/token

Метод запроса: POST.

Параметры запроса:

Пример тела запроса при обновлении токена (refresh_token):

{
  "grant_type": "refresh_token",
  "client_id": "70",
  "client_secret": "edce4425460bbbb0a3b7c1f529e3c5993839c75490a54cb6b1a45eb0c2fd8e7f",
  "refresh_token": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4..."
}

Пример тела запроса при обмене кода на токен (authorization_code):

{
  "grant_type": "authorization_code",
  "client_id": "70",
  "client_secret": "edce4425460bbbb0a3b7c1f529e3c5993839c75490a54cb6b1a45eb0c2fd8e7f",
  "code": "rJPqibAWGtUDYJdkOfbskr",
  "redirect_uri": "http://localhost"
}

Ответ:

Схема данных ответа (Schema): OAuthTokenResponse.

Пример ответа:

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "refresh_token": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4...",
  "expires_in": 3600,
  "scope": "openid email profile",
  "id_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Возможные сообщения об ошибках:

Данные пользователя (OIDC)

Запрос на информацию о пользователе (OIDC) по токену клиента. Требует размещения OAuth access_token из запроса /api/oauth/client/token в заголовке "Authorization: Bearer ".

Запрос:

/oauth/client/userinfo

Метод запроса: GET.

Параметры запроса: Нет.

Ответ:

Схема данных ответа (Schema): OIDCUserinfo.

Пример ответа:

{
  "sub": "550e8400-e29b-41d4-a716-446655440000",
  "email": "user@example.com",
  "email_verified": true,
  "phone_number": "+79001234567",
  "phone_number_verified": false,
  "given_name": "Иван",
  "family_name": "Иванов",
  "birthdate": "1990-01-15",
  "avatar_large": null
}

Возможные сообщения об ошибках: