Skip to content

Đăng ký khuôn mặt ​

Đăng ký hồ sơ (profile) khuôn mặt của một người dùng, template mà mọi lần xác thực sau này sẽ được đối chiếu. Việc đăng ký chạy các kiểm tra sanity, liveness và đối chiếu chéo giữa các ảnh trước khi hồ sơ được tạo.

Endpoint ​

http
POST /v1/face_auth_register
Content-Type: application/json
json
{
  "user_id": "user_00000001",
  "faces": [
    { "id": "a4facba3-334b-41fb-97e3-4766cb70ae29" }
  ],
  "device_id": "device_00000001",
  "app_id": "app_00000001",
  "lat": "10.7769",
  "lng": "106.7009",
  "face_type": "selfie",
  "metadata": { "key2": "value2" }
}

Tham số:

Tham sốKiểuBắt buộcMặc địnhMô tả
user_idstringCó—User ID của khách hàng.
facesImageData[]Có—Ảnh selfie của người dùng, hoặc một document chứa một ảnh selfie như mặt trước của thẻ ID. Cần ít nhất một ảnh.
device_idstringKhông—Device ID của người dùng, để lịch sử face auth trên admin portal cho biết thiết bị nào đã thực hiện đăng ký.
app_idstringKhông—App mà khách hàng đã dùng, để lịch sử face auth cho biết app nào đã thực hiện đăng ký.
latstringKhông—Vĩ độ của thiết bị dùng cho lần đăng ký này.
lngstringKhông—Kinh độ của thiết bị dùng cho lần đăng ký này.
face_typestringKhôngselfieLoại ảnh khuôn mặt đầu vào: selfie hoặc id_card. Dùng id_card cho một khuôn mặt trích xuất từ thẻ Căn cước công dân, ví dụ khi đọc chip NFC của thẻ.
metadatajson_objectKhông—Bất kỳ metadata key-value nào để lưu cùng khách hàng này. Cho phép object lồng nhau.

ImageData ​

Tham sốKiểuBắt buộcMặc địnhMô tả
idstringKhông—ID của ảnh được trả về bởi Tải ảnh lên.
base64stringKhông—Văn bản dữ liệu ảnh mã hóa Base64.
labelstringKhông—Nhãn của ảnh, như mô tả trong Khuyến nghị sử dụng.
metadatastring_jsonKhông—Chuỗi JSON key/value. Ví dụ: {"gesture":"left","type":1}

Chỉ cung cấp id hoặc base64, không bao giờ cả hai. CAKE khuyến nghị dùng id thay vì base64.

INFO

faces là bắt buộc — gửi ít nhất một ảnh; một lần đăng ký không có khuôn mặt nào thì không có gì để đăng ký.

Trả về: RegisterFacesResponse

Ví dụ request ​

bash
curl -X POST \
  '<BASE_URL>/v1/face_auth_register' \
  -H 'Authorization: ATV <ACCESS_ID>:<SIGNATURE>' \
  -H 'X-TV-Timestamp: <TIMESTAMP>' \
  -H 'Content-Type: application/json' \
  -d '{
    "user_id": "user_00000001",
    "faces": [
      { "id": "a4facba3-334b-41fb-97e3-4766cb70ae29" },
      { "id": "c5a2a405-f152-4248-b746-3af76b241ef7" },
      { "id": "5d0345f7-da7c-44e8-bd6c-a8c08c806227" }
    ],
    "face_type": "selfie",
    "device_id": "device_00000001",
    "app_id": "app_00000001",
    "lat": "10.7769",
    "lng": "106.7009",
    "metadata": {
      "key1": { "key11": "value11", "key12": "value12" },
      "key2": "value2"
    }
  }'

Response ​

json
{
  "data": {
    "status": "success",
    "request_id": "cfc7b8d5-f2e2-437b-80e5-d600dfad26e2",
    "face_auth": {
      "user_id": "user_00000001",
      "status": "VERIFIED"
    }
  },
  "success": true,
  "code": 0,
  "message": "Success"
}
TrườngKiểuMô tả
data.statusstringsuccess hoặc failure.
data.request_idstringRequest ID; cung cấp cho CAKE Support khi cần kiểm tra log.
data.face_auth.user_idstringUser ID mà hồ sơ được tạo cho.
data.face_auth.statusstringTrạng thái hồ sơ, ví dụ VERIFIED.

WARNING

Một template khuôn mặt là dữ liệu sinh trắc học. Chỉ đăng ký khi có sự đồng ý của khách hàng, và dùng Xóa Face Authen để đáp ứng các yêu cầu xóa dữ liệu.

Lỗi ​

Việc đăng ký hiển thị các lỗi về chất lượng và đối chiếu đã từ chối lần đăng ký:

MãThông báo
2001003Ảnh gửi lên server không có khuôn mặt nào.
2001006Các khuôn mặt phát hiện được từ ảnh gửi lên server không khớp nhau.
2001008Khuôn mặt đã được đăng ký trong hệ thống.
2001009Ảnh gửi lên server có nhiều khuôn mặt.
2001010Không tìm thấy Access ID.
2001011Kiểm tra liveness của selfie / id_card thất bại.
2001012Kiểm tra sanity của selfie / id_card thất bại.
2001014Vượt giới hạn tốc độ đăng ký.
2001015Vượt giới hạn brute-force khi đăng ký.
2001025Ảnh selfie gửi lên server có độ dài không khớp với cấu hình.
2001026Các ảnh gửi lên server bị trùng lặp.
401100Bạn không được phép thực hiện hành động này.
4001000Tham số đầu vào vi phạm một ràng buộc.
4001001Header X-TV-Timestamp đã hết hạn, cần một cái mới hơn.
4001002Ảnh selfie hoặc ảnh gốc có nhiều hơn 1 khuôn mặt.
4041000Không tìm thấy image ID trong DB.
4041001Không tìm thấy người dùng.
4091000user_id đã được đăng ký.
4131000Kích thước ảnh đầu vào vượt quá giới hạn cho phép (15MB).
4151000Định dạng ảnh được cung cấp không được hỗ trợ (JPG/PNG).
4291000Số lượng request vượt quá giới hạn throughput của bạn.
5001000Xảy ra lỗi không mong đợi trong quá trình xử lý request.
MãMô tả
access_id_not_foundKhông tìm thấy Access ID.
register_rate_limit_exceededVượt giới hạn tốc độ đăng ký.
register_brute_force_limit_exceededVượt giới hạn brute-force khi đăng ký.
access_denied_exceptionBạn không được phép thực hiện hành động này.
invalid_parameter_exceptionTham số đầu vào vi phạm một ràng buộc.
request_time_too_skewedHeader X-TV-Timestamp đã hết hạn, cần một cái mới hơn.
incorrect_number_of_facesẢnh selfie hoặc ảnh gốc có nhiều hơn 1 khuôn mặt.
image_not_found_exceptionKhông tìm thấy image ID trong DB.
user_already_registereduser_id đã được đăng ký.
image_too_large_exceptionKích thước ảnh đầu vào vượt quá giới hạn cho phép (15MB).
invalid_image_format_exceptionĐịnh dạng ảnh được cung cấp không được hỗ trợ (JPG/PNG).
rate_limit_exceptionSố lượng request vượt quá giới hạn throughput của bạn.
duplicated_imageCác ảnh gửi lên server bị trùng lặp.
selfie_image_invalidẢnh selfie gửi lên server có độ dài không khớp với cấu hình.
sanity_check_failedKiểm tra sanity của selfie / id_card thất bại.
liveness_check_failedKiểm tra liveness của selfie / id_card thất bại.
image_has_no_facesẢnh gửi lên server không có khuôn mặt nào.
image_has_multiple_facesẢnh gửi lên server có nhiều khuôn mặt.
face_already_registeredKhuôn mặt đã được đăng ký trong hệ thống.
compare_faces_not_matchedCác khuôn mặt phát hiện được từ ảnh gửi lên server không khớp nhau.
internal_server_errorXảy ra lỗi không mong đợi trong quá trình xử lý request.

face_already_registered và user_already_registered là hai lỗi khác nhau: lỗi đầu nghĩa là khuôn mặt đó thuộc về một hồ sơ khác, lỗi sau nghĩa là user_id này đã có một hồ sơ rồi.

Bước tiếp theo ​

Developers