Проверить QR-аутентификацию
Проверяет результат QR-входа до сообщения провайдера об успехе или ошибке. Ожидающий QR возвращает актуальный auth_payload.qr_code; WhatsApp вместо этого может вернуть passkey_required и auth_payload.public_key для следующего шага WebAuthn.
https://api.unifyport.ai/v1/accounts/{account_id}/auth/qr/checkЗаголовки
X-Api-KeyAPI-ключ рабочей области. Рабочая область определяется по этому заголовку.
Content-TypeИспользуйте application/json при отправке JSON-тела запроса.
Параметры пути
account_idИдентификатор для маршрута раздела authentication.
Тело запроса
Этот эндпоинт принимает пустой JSON-объект; отправьте {} как в примере запроса.
Тело ответа
providerПровайдер, runtime которого обработал действие.
enum: telegram, whatsapp, line, twitter, zalo, tiktok, whatsapp_protocol
actionЗапрошенное действие runtime.
statusТекущий статус потока авторизации, например pending_auth, awaiting_qr_scan, awaiting_code, pending, passkey_required, passkey_pending, passkey_confirmation, passkey_confirmation_sent, authorized или failed.
auth_statusНормализованное состояние аутентификации после действия Passkey. Опрашивайте GET /auth до authorized или failed.
auth_payloadobjectСтандартная полезная нагрузка для текущего шага. QR использует qr_code; шаг проверки кода использует type=code; Passkey использует type=passkey и public_key. Полезные нагрузки взаимоисключающих шагов не появляются вместе.
auth_payloadСтандартная полезная нагрузка для текущего шага. QR использует qr_code; шаг проверки кода использует type=code; Passkey использует type=passkey и public_key. Полезные нагрузки взаимоисключающих шагов не появляются вместе.
typeТип полезной нагрузки текущего шага; code обозначает шаг проверки кода, а passkey — шаг Passkey.
qr_codeСодержимое QR для отображения только при auth_status=awaiting_qr_scan.
public_keyWebAuthn PublicKeyCredentialRequestOptions для browser credentials API при auth_status=passkey_required.
account_idАккаунт провайдера, к которому относится этот ответ.
expires_atМетка времени RFC3339, после которой текущий auth_payload становится недействительным.
Ответы
200Запрос выполнен. См. пример тела ответа.
400Тело запроса, путь или параметры некорректны.
401Заголовок X-Api-Key отсутствует или недействителен.
409Запрошенная операция конфликтует с существующим аккаунтом провайдера или ресурсом.
500Сервис столкнулся с неожиданной ошибкой.
502Адаптер или вышестоящий провайдер не смог завершить операцию.
Запрос
curl -X POST https://api.unifyport.ai/v1/accounts/{account_id}/auth/qr/check \
-H "X-Api-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{}'Ответ
{
"data": {
"provider": "whatsapp",
"action": "check_qr_auth",
"status": "awaiting_qr_scan",
"auth_status": "awaiting_qr_scan",
"auth_payload": {
"qr_code": "<QR_CODE>"
}
}
}Ответ
{
"data": {
"provider": "whatsapp",
"action": "check_qr_auth",
"status": "passkey_required",
"auth_status": "passkey_required",
"auth_payload": {
"type": "passkey",
"public_key": {
"challenge": "<BASE64URL_CHALLENGE>"
}
}
}
}