قارِن موقع تسجيل الدخول بالموقع المخزَّن سابقًا
قد يستدعي حدوث تغيّر كبير في الموقع الجغرافي المُشتق من IP خلال فترة قصيرة إجراء مراجعة. تقارن POST /v1/risk/check تقدير الموقع الحالي للمستخدم بالنقطة المخزَّنة سابقًا، وتُعيد المسافة والزمن المنقضي والسرعة الضمنية وتصنيف المخاطر — تواصل معنا لتأكيد التوفر قبل الدمج، إذ لم يتم التحقق بعد من فرض عائلة خطة مخاطر مستقلة أو من جاهزية الدفع.
التوفر
تشترك نقطة النهاية هذه في نفس وسيطة المفتاح السري مع البحث عن عنوان IP، التي تتحقق فقط من كون المفتاح مفتاحًا سريًا — ولا تفرض بشكل مستقل عائلة خطة مخاطر منفصلة، كما أن تسعير المخاطر التمهيدي لا يملك سعرًا فعالًا مُهيَّأً. تأكَّد معنا من الشروط والتوفر الحاليَين قبل الاعتماد على هذه النقطة في بيئة الإنتاج.
المُدخلات واستخدام المفتاح السري
أرسل نص JSON يحتوي userId و ip وقيمة منطقية اختيارية commit (تكون true افتراضيًا) إلى POST /v1/risk/check مع مفتاح سري عبر Authorization: Bearer YOUR_SECRET_KEY — من خادم إلى خادم فقط، ولا تستخدمه أبدًا من متصفح.
الملاحظة الأولى
لا يملك أول فحص على الإطلاق لمستخدم أي موقع سابق يُقارَن به: فيُعيد risk: "low" و impossibleTravel: false وقيمًا فارغة (null) للمسافة/السرعة/الزمن المنقضي، وقيمة previousLocation فارغة — ثم يخزِّن هذه الملاحظة كأساس مرجعي جديد ما لم تكن commit تساوي false.
الملاحظات اللاحقة
تقارن الفحوصات اللاحقة المسافة على الدائرة العظمى بين النقطة السابقة والحالية بالزمن المنقضي للحصول على سرعة ضمنية. إذا كانت أقل من 500 كم/سا، تكون النتيجة "low"؛ وإذا كانت بين 500 و900 كم/سا، تكون "medium" (يمكن لرحلة طيران طويلة حقيقية أن تقترب من هذا الحد)؛ وإذا تجاوزت 900 كم/سا، تكون "high" مع impossibleTravel: true.
إشارة commit
تكون commit بقيمة true افتراضيًا. اجعلها false لإجراء فحص مسبق استكشافي — على سبيل المثال، قبل قرار مصادقة معزَّزة — يقرأ الأساس المرجعي المخزَّن دون تحريكه، حتى لا يُفسد فحص مشروع سجل الموقع الحقيقي للمستخدم.
المواقع المفقودة
إذا تعذَّر تحليل ip إلى خط عرض/خط طول، تُعيد نقطة النهاية استجابة 422 بدلًا من تخمين منخفض الثقة.
الاحتفاظ بالبيانات وحذفها
يخزِّن الإصدار v1 موقعًا واحدًا بالضبط لكل زوج (حسابك، userId) — وهو أحدث ملاحظة مُثبَّتة — دون انتهاء صلاحية تلقائي ودون توفر نقطة نهاية للحذف حاليًا؛ ويبقى قائمًا حتى يكتب فوقه فحص مُثبَّت تالٍ. ونظرًا لأنها تخزِّن موقعًا مرتبطًا بـ userId يتجاوز دورة طلب/استجابة واحدة، فإن استخدام هذه النقطة يجعل Watch-IP معالجًا لتلك البيانات نيابةً عنك — راجع ملحق معالجة البيانات (DPA).
النتائج الإيجابية الكاذبة
لا يملك الإصدار v1 آلية كبح واعية بـ VPN أو مراكز البيانات، لذا يمكن للتبديل السريع بين VPN أو تبدُّل عناوين IP المعتاد في شبكات الجوال أن يُنتج نتيجة مرتفعة. عامل كل تصنيف كإشارة خام لعملية المراجعة الخاصة بك، لا كحكم نهائي.
حقول الاستجابة
- risk
- low أو medium أو high، بناءً على حدود السرعة الضمنية الموضحة أعلاه.
- impossibleTravel
- قيمة منطقية مختصرة لـ risk: "high".
- distanceKm, impliedSpeedKmh, elapsedSeconds
- المسافة والزمن بين الملاحظة السابقة والحالية، والسرعة التي يُشير إليها ذلك. تكون فارغة (null) في أول فحص على الإطلاق للمستخدم.
- previousLocation
- country و latitude و longitude و observedAt للأساس المرجعي المخزَّن قبل هذا الاستدعاء. تكون فارغة (null) في أول فحص على الإطلاق للمستخدم.
- currentLocation
- country و latitude و longitude المُستخرَجة من ip الذي قدَّمته في هذا الاستدعاء.
فحص مسبق، ثم تثبيت
cURL من جانب الخلفية
# فحص استكشافي قبل قرار المصادقة الخاص بك — لا يُحرِّك الأساس المرجعي.
curl https://api.watch-ip.com/v1/risk/check \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"userId": "u_123", "ip": "203.0.113.1", "commit": false}'
# بعد نجاح التحقق من كلمة المرور/العامل الثاني الخاص بك، ثبِّت الأساس المرجعي الجديد.
curl https://api.watch-ip.com/v1/risk/check \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"userId": "u_123", "ip": "203.0.113.1"}'تكون commit بقيمة true افتراضيًا، لذا يُحدِّث الاستدعاء الثاني أعلاه الأساس المرجعي المخزَّن؛ أما الأول، بقيمة commit: false، فلا يُحدِّثه.
الأسئلة الشائعة
ماذا يحدث في الفحص الأول؟
يُعيد دائمًا risk: "low" مع previousLocation فارغة — إذ لا يوجد بعد ما يُقارَن به الموقع الحالي.
هل تكبح هذه الميزة قفزات VPN؟
لا. لا يملك الإصدار v1 آلية كبح واعية بـ VPN أو مراكز البيانات، لذا يمكن لتبديل الشبكات أو منافذ خروج VPN بين عمليات تسجيل الدخول أن يُنتج بمفرده نتيجة متوسطة أو مرتفعة.
هل تُعد النتيجة المرتفعة دليلًا على اختراق؟
لا. إنها حساب خام للمسافة عبر الزمن. اجمعها مع أدلة المصادقة الخاصة بك بدلًا من التعامل معها كحكم قائم بذاته.
هل يمكنني تجنُّب تحديث الأساس المرجعي؟
نعم — مرِّر commit: false. يظل الفحص يعمل ويُعيد نتيجة، لكن الموقع المخزَّن لا يُستبدَل.
إلى متى يُحتفَظ بالموقع السابق؟
إلى أجل غير مسمى، حتى يكتب فوقه فحص مُثبَّت تالٍ لنفس userId — دون انتهاء صلاحية تلقائي ودون نقطة نهاية للحذف في التطبيق الحالي.
صفحات ذات صلة
- مرجع POST /v1/risk/checkمرجع كامل بالحقول لنقطة نهاية كشف التنقل المستحيل.
- اكتشاف مخاطر تسجيل الدخولاستخدم تغيّرات الموقع الجغرافي المُشتقة من IP للاستئناس بها في مراجعة تسجيل الدخول، بعد تأكيد الوصول إلى فحص المخاطر.
- التواصلتواصل مع دعم Watch-IP أو فريق مبيعاتها.
- الإيجابيات الكاذبة للتنقل المستحيللماذا لا تُعد درجة تنقل مستحيل مرتفعة دليلًا على الاستيلاء على الحساب.