# Завершение входа через OIDC — обмен кода на токены платформы

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## Завершение входа через OIDC — обмен кода на токены платформы

`GET /api/v1/security/sso/callback`

**Параметры**

| Имя | Где | Обязательный | Тип | Описание |
| --- | --- | --- | --- | --- |
| `code` | query | нет | string | Authorization code от IdP |
| `state` | query | да | string | State, выданный при старте flow |
| `error` | query | нет | string | Код ошибки от IdP |
| `error_description` | query | нет | string | Описание ошибки от IdP |

**Ответы**

- `302` — Редирект во фронтенд с результатом входа
- `400` — Некорректный запрос: не прошла валидация параметров или тела (`application/problem+json`, ProblemDetails)
- `429` — Превышен лимит запросов, повторите через Retry-After секунд (`application/problem+json`, ProblemDetails)

    </>
  );
}
