| Правильная ссылка на эту статью: |
Проверка JWT-токена
Проверка действительности JWT-токена и получение его сведений (по схеме
RFC 7662 OAuth 2.0 Token Introspection).
Эндпоинт сообщает, активен ли переданный в `Authorization: Bearer` токен, и если да — какие у него
права и идентификаторы.
Реальных операций не выполняет.
Используется так: вызывающий передаёт свой собственный токен и получает сведения о нём же. Подойдёт клиенту, чтобы перед серией запросов убедиться, что токен жив, не отозван и имеет нужные права.
URL¶
POST /V1/Introspect.ashx
Заголовки¶
Authorization: Bearer {JWT}— токен, который надо проверить. Выдаётся на https://security.webmoney.com/.
Тело запроса¶
Тело не используется (можно отправить пустое или `{}`).
Пример успешного ответа (JSON)¶
{
"active": true,
"token_type": "Bearer",
"scope": "trans transHist balance",
"jti": "9f7a3a9e-1b2c-4d5e-8f60-112233445566",
"exp": 1767225600,
"iat": 1767139200,
"iss": "w3s.webmoney.com",
"aud": "w3s.webmoney.com",
"sub": "111122223333",
"master": "999988887777",
"slave": "111122223333",
"purse": "Z123456789012"
}
Поля ответа:¶
| Поле | Тип | Описание |
|---|---|---|
| active | bool | `true` — токен валиден, подписан, не просрочен и не отозван |
| token_type | string | Тип токена, всегда `Bearer` |
| scope | string | Список выданных прав через пробел: `inv trans transHist balance msg msgHist` |
| jti | string | Уникальный идентификатор токена (GUID) |
| exp | long | Срок действия (Unix-время, секунды) |
| iat | long | Время выпуска (Unix-время, секунды), если присутствует |
| nbf | long | Не валиден до (Unix-время, секунды), если присутствует |
| iss | string | Издатель токена |
| aud | string | Аудитория токена |
| sub | string | Subject (совпадает с `slave`) |
| master | string | WMID управляющего ключа (claim `master`) |
| slave | string | WMID владельца токена (claim `slave`) |
| purse | string | Кошелёк, к которому привязан токен (если выдан с правами по кошельку) |
Поля с null/отсутствующим значением в ответе опускаются.
Ответ для невалидного/отозванного/просроченного токена (JSON)¶
По RFC 7662 §2.2 в этом случае возвращается строго один признак — без подробностей:
{
"active": false
}
Этот же ответ отдаётся, если:
- заголовок `Authorization` отсутствует или не начинается с `Bearer `;
- подпись токена не проходит проверку;
- срок действия (`exp`) истёк;
- запись о токене отсутствует в базе (отозван).
Метод не разрешён (JSON)¶
{
"active": false
}
Возвращается со статусом 405 для всех методов кроме POST.
Что НЕ делает этот эндпоинт¶
- Не проверяет конкретный запрос на конкретный эндпоинт — только сам токен.
Чтобы проверить "пройдёт ли мой Transact с этим телом", используйте
заголовок `X-Dry-Run: 1` на боевом эндпоинте (см. ниже).
Связь с режимом dry-run (проверка без выполнения операции)¶
Все боевые эндпоинты `/V1/*` поддерживают режим проверки без выполнения:
при наличии заголовка `X-Dry-Run: 1` (или query-параметра `?dryrun=1`)
запрос проходит полную проверку токена и валидацию тела, но реальная
операция не выполняется.
Ответ содержит дополнительное поле (JSON):
{
"reqn": 1730486400000,
"retval": 0,
"retdesc": "OK (dry-run)",
"dryrun": true
}
Используйте `Introspect` для разовой проверки токена и `X-Dry-Run`
для предварительной проверки конкретного вызова.
Все JSON интерфейсы с JWT авторизацией поддерживают режим проверки токена без выполнения операции - dry-run.