إعادة التحقق الصامتة
يستخدم محرك إعادة التحقق الصامتة، الذي يحلل السياق السلوكي للمستخدم ضمن تأثير الشبكة الخاص بـ Unico ويقدّم إشارة الثقة الخاصة بالمعاملة الحالية. بعبارة أخرى، نقدّم مستوى الثقة بأن هذا هو المستخدم المتوقع في المعاملة.
الحد الأدنى للإصدار: 3.3.0
| السمة | النوع | مطلوب | الوصف |
|---|---|---|---|
externalUserId | String | ✅ | معرّف المستخدم في نظامك. يتم تجزئته تلقائيًا باستخدام SHA-256 قبل الإرسال، ولا يُرسل مطلقًا بنص عادي. |
الخطوة 1 — تنفيذ initializeSDK
استدعِ الطريقة الثابتة (static) UnicoSDK.initializeSDK، مع تمرير AcessoBioConfigDataSource الخاص بك وenvironment.
يجب استدعاء UnicoSDK.initializeSDK في أقرب وقت ممكن عند إطلاق التطبيق (مثال: application(_:didFinishLaunchingWithOptions:)). استدعاؤها لاحقًا يقلل من وقت المعالجة في الخلفية ويزيد من احتمال الحصول على استجابات مصادقة غير حاسمة.
- Swift
- Objective-C
UnicoSDK.initializeSDK(
config: YourUnicoConfig(),
environment: .UAT
)
[UnicoSDK initializeSDKWithConfig:[YourUnicoConfig new] environment:UAT];
config هو نفس AcessoBioConfigDataSource الذي نفّذته بالفعل من أجل الالتقاط — يُؤخذ sdkKey من getHostKey() ومعرّف الحزمة من getBundleIdentifier():
final class YourUnicoConfig: NSObject, AcessoBioConfigDataSource {
func getBundleIdentifier() -> String { "your_bundle_id" }
func getHostKey() -> String { "your_sdk_key" }
}
إذا تم حذف environment، فإن القيمة الافتراضية هي .PROD.
الخطوة 2 — تنفيذ startSilentValidation
بعد initializeSDK، اربط عملية الجمع الجارية بالفعل بالمستخدم الذي تم تحديده عن طريق استدعاء startSilentValidation مع كائن PrepareInfo يحتوي على externalUserId.
- Swift
- Objective-C
let prepareInfo = PrepareInfo(externalUserId: "external_user_id")
UnicoSDK.startSilentValidation(prepareInfo: prepareInfo) { result in
switch result {
case .success:
break
case .failure(let error):
print(error.code, error.desc, error.info)
}
}
PrepareInfo *prepareInfo = [[PrepareInfo alloc] initWithExternalUserId:@"external_user_id"
useCase:nil];
[UnicoSDK startSilentValidationWithPrepareInfo:prepareInfo
errorCompletion:^(ErrorBio * _Nullable error) {
if (error == nil) {
// ...
} else {
// error.code, error.desc, error.info
}
}];
إذا حدث التحقق في بداية التدفق، على سبيل المثال عند تسجيل الدخول، انتظر رد الاتصال الخاص بالنجاح قبل الانتقال إلى الخطوة 3.
| الرمز | المعنى |
|---|---|
75001 | لم يتم تهيئة SDK. لم يتم استدعاء initializeSDK، أو لم ينتهِ بعد، أو فشل. |
75000 | فشل عام في الالتقاط. |
الخطوة 3 — إنشاء العملية والمصادقة
مع استمرار التحقق، أنشئ عملية التحقق لإكمال المصادقة. راجع مرجع API ▸ API ▸ إنشاء العملية.
أدرِج نفس externalUserId المُرسل في PrepareInfo من الخطوة 2 داخل نص الطلب (request body) — هذا ما يسمح للخادم الخلفي (backend) بربط إنشاء العملية بالتحقق الجاري بالفعل.
curl -X POST https://api.id.unico.app/processes/v1 \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": {
"duiType": 1,
"code": "12345678909",
"name": "Luke Skywalker",
"gender": "M",
"birthDate": "2000-05-20",
"email": "[email protected]",
"phone": "5519725570707"
},
"useCase": "Onboarding",
"externalUserId": "external_user_id"
}'
تتضمن الاستجابة الحقل silentAuth.result الذي يحمل نتيجة المصادقة:
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"silentAuth": {
"result": "yes"
}
}
| الحقل | النوع | الوصف |
|---|---|---|
silentAuth.result | string | yes أو no — راجع القيم المحتملة أدناه. |
silentAuth.result — القيم المحتملة
| القيمة | المعنى |
|---|---|
yes | تمت الموافقة على المصادقة، تم التعرف على المستخدم بثقة كافية، ولا حاجة لالتقاط إضافي. |
no | بيانات غير كافية للموافقة الصامتة. يُنصح بالمصادقة عبر القياسات الحيوية (السيلفي) أو طريقة بديلة أخرى. |