# Интроспекция токена (RFC 7662)

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## Интроспекция токена (RFC 7662)

`POST /oauth/introspect`

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

| Имя | Где | Обязательный | Тип | Описание |
| --- | --- | --- | --- | --- |
| `idempotency-key` | header | нет | string | Ключ идемпотентности для безопасного повтора запроса: 8–255 символов из набора A-Za-z0-9_.:+/=-, ответ кэшируется на 24 ч |

**Тело запроса** (`application/x-www-form-urlencoded`, обязательное): OAuthIntrospectRequest
- `client_id`: string — client_id (если клиент не аутентифицируется через Basic)
- `client_secret`: string — client_secret confidential-клиента
- `token`: string, обязательное — Проверяемый токен
- `token_type_hint`: "access_token" | "refresh_token" — Подсказка типа токена

**Ответы**

- `200` — Результат интроспекции (`application/json`, OAuthIntrospectResponse)
  - `active`: boolean, обязательное — Действителен ли токен; при false остальные поля отсутствуют
  - `aud`: string или массив string — Audience токена
  - `client_id`: string — Клиент, которому выдан токен
  - `cnf`: object — Привязка токена к ключу (RFC 9449)
    - `jkt`: string, обязательное — Отпечаток DPoP-ключа
  - `exp`: number — Истечение, Unix-время
  - `iat`: number — Выдан, Unix-время
  - `iss`: string — Issuer токена
  - `jti`: string — Идентификатор токена
  - `nbf`: number — Не действителен до, Unix-время
  - `scope`: string — Scope токена через пробел
  - `sub`: string — Субъект токена
  - `token_type`: string — Тип токена
  - `username`: string — Имя пользователя
- `400` — Некорректный запрос (`application/json`, OAuthError)
- `401` — Ошибка аутентификации клиента (`application/json`, OAuthError)
- `429` — Превышен лимит запросов, повторите через Retry-After секунд (`application/problem+json`, ProblemDetails)

    </>
  );
}
