Ủy quyền tài khoản
Tạo phiên ủy quyền nhà cung cấp
Tạo phiên ủy quyền WhatsApp công khai cho bước Passkey bổ sung trong luồng QR. Dùng authorize_url được lưu trữ sẵn hoặc auth_payload.public_key để gọi WebAuthn trực tiếp. Không ghi URL, challenge hay credential vào log công khai hoặc chia sẻ chúng.
https://api.unifyport.ai/v1/accounts/{account_id}/auth-sessionsTrước khi gọi
Dùng X-Api-Key của workspace sở hữu tài nguyên trên máy chủ. Thay mọi giá trị mẫu trước khi chạy.
Nguồn tham số
- account_id
- Lấy data.id từ phản hồi tạo hoặc truy vấn tài khoản. ID thuộc workspace của X-Api-Key. Lấy tài khoản
Tham số yêu cầu
Tiêu đề
X-Api-KeyAPI key của không gian làm việc. Không gian làm việc được xác định từ tiêu đề này.
Tham số đường dẫn
account_idĐịnh danh dùng cho route authentication.
Nội dung yêu cầu
Điểm cuối này không cần nội dung JSON.
Hiểu kết quả
Đọc trường phản hồi và trạng thái HTTP được mô tả. Thành công 204 không có nội dung; dùng X-Request-Id để chẩn đoán. Xem thao tác liên quan cho bước tiếp theo.
Phản hồi 201 Created
{
"request_id": "<REQUEST_ID>",
"data": {
"account_id": "acc_example",
"provider": "whatsapp",
"auth_mode": "qrcode",
"status": "passkey_required",
"auth_payload": {
"type": "passkey",
"public_key": {
"challenge": "<BASE64URL_CHALLENGE>"
}
},
"authorize_url": "https://auth.example.com/authorize/whatsapp/<SESSION_TOKEN>",
"expires_at": "2026-08-12T08:10:00Z",
"switchable": false,
"available_auth_modes": [
"qrcode"
]
}
}
Nội dung phản hồi
account_idTài khoản nhà cung cấp mà phản hồi này tham chiếu tới.
providerMã định danh kênh. Dùng nguyên giá trị API trả về trong các lần gọi sau; xem enum bên dưới để biết giá trị của API này.
enum: whatsapp
auth_modeChế độ ủy quyền của phiên. Passkey là nhánh bổ sung của WhatsApp qrcode.
statusTrạng thái hiện tại của luồng ủy quyền, ví dụ pending_auth, awaiting_qr_scan, awaiting_code, pending, passkey_required, passkey_pending, passkey_confirmation, passkey_confirmation_sent, authorized hoặc failed.
auth_payloadPayload chuẩn cần cho bước hiện tại. QR dùng qr_code; bước xác minh mã dùng type=code; Passkey dùng type=passkey và public_key. Payload của các bước loại trừ nhau không xuất hiện cùng lúc.
authorize_urlURL tạm thời được lưu trữ để hoàn tất bước Passkey. Không ghi log hoặc chia sẻ giá trị này.
format: uri
expires_atDấu thời gian RFC3339 mà sau đó auth_payload hiện tại không còn hợp lệ.
format: date-time
switchableCho biết người dùng có thể chuyển sang chế độ ủy quyền khả dụng khác hay không.
available_auth_modes[]Các chế độ ủy quyền có thể chuyển sang an toàn từ phiên hiện tại.
Phản hồi
201201 Created
Yêu cầu thành công. Xem ví dụ nội dung phản hồi.
400Bad Request
Body, đường dẫn hoặc tham số yêu cầu không hợp lệ.
401Unauthorized
Header X-Api-Key thiếu hoặc không hợp lệ.
500Internal Server Error
Dịch vụ gặp lỗi không mong muốn.
503Service Unavailable
Dịch vụ backend cần thiết tạm thời không khả dụng.
Khi yêu cầu thất bại
Kiểm tra HTTP và error.code/numeric_code, giữ request_id. Sửa tham số, tiếp tục xác thực hoặc kiểm tra runtime tùy nguyên nhân. Xác nhận kết quả cũ trước khi thử lại thao tác gửi hoặc ghi. Tham chiếu mã lỗi
- invalid_request · 10000 · 400
- Kiểm tra trường bắt buộc, định dạng và điều kiện kênh rồi sửa yêu cầu.
- invalid_api_key · 11001 · 401
- Kiểm tra X-Api-Key và workspace còn hoạt động.