Bandingkan lokasi login dengan lokasi tersimpan sebelumnya
Perubahan lokasi berbasis IP yang besar dalam interval singkat bisa layak untuk ditinjau. POST /v1/risk/check membandingkan perkiraan lokasi pengguna saat ini dengan titik tersimpan sebelumnya dan mengembalikan jarak, waktu yang berlalu, kecepatan tersirat, dan klasifikasi risiko — hubungi kami untuk mengonfirmasi ketersediaan sebelum mengintegrasikannya, karena penerapan paket risiko independen dan kesiapan checkout belum diverifikasi.
Ketersediaan
Endpoint ini berbagi middleware secret-key yang sama dengan pencarian IP, yang hanya memeriksa bahwa sebuah key adalah secret key — endpoint ini tidak menegakkan kelompok paket risiko yang terpisah secara independen, dan harga risiko yang di-seed tidak memiliki harga aktif yang dikonfigurasi. Konfirmasikan syarat dan ketersediaan saat ini dengan kami sebelum mengandalkan ini di produksi.
Input dan penggunaan secret key
Kirim isi JSON berisi userId, ip, dan boolean commit opsional (default true) ke POST /v1/risk/check dengan secret key melalui Authorization: Bearer YOUR_SECRET_KEY — hanya server-ke-server, tidak pernah dari browser.
Observasi pertama
Pengecekan pertama kali pengguna tidak memiliki lokasi sebelumnya untuk dibandingkan: ini mengembalikan risk: "low", impossibleTravel: false, nilai distance/speed/elapsed yang null, dan previousLocation yang null, dan — jika commit tidak false — menyimpan observasi ini sebagai baseline baru.
Observasi berikutnya
Pengecekan berikutnya membandingkan jarak great-circle antara titik sebelumnya dan saat ini terhadap waktu yang berlalu untuk mendapatkan kecepatan tersirat. Di bawah 500 km/jam, hasilnya "low"; antara 500 dan 900 km/jam, "medium" (penerbangan jarak jauh yang sungguhan bisa mendarat mendekati batas ini); di atas 900 km/jam, "high" dan impossibleTravel: true.
Flag commit
commit default-nya true. Set ke false untuk pre-check spekulatif — misalnya, sebelum keputusan step-up-authentication — yang membaca baseline tersimpan tanpa mengubahnya, sehingga pengecekan yang sah tidak merusak riwayat lokasi asli pengguna.
Lokasi yang hilang
Jika ip tidak bisa diselesaikan menjadi latitude/longitude, endpoint mengembalikan 422, bukan tebakan dengan keyakinan rendah.
Retensi dan penghapusan
v1 menyimpan tepat satu lokasi per pasangan (akun Anda, userId) — observasi committed terbaru — tanpa kedaluwarsa otomatis dan tanpa endpoint penghapusan yang tersedia saat ini; lokasi ini bertahan sampai pengecekan committed berikutnya menimpanya. Karena ini menyimpan lokasi yang terkait dengan userId melampaui satu siklus request/respons, penggunaan endpoint ini menjadikan Watch-IP sebagai pemroses data tersebut atas nama Anda — lihat Data Processing Addendum.
Positif palsu
v1 tidak memiliki penekanan yang sadar-VPN atau sadar-pusat-data, jadi perpindahan VPN yang cepat atau pergantian IP jaringan seluler yang biasa bisa menghasilkan hasil yang meningkat. Perlakukan setiap klasifikasi sebagai sinyal mentah untuk proses peninjauan Anda sendiri, bukan vonis final.
Field respons
- risk
- low, medium, atau high, dari ambang batas kecepatan tersirat di atas.
- impossibleTravel
- Boolean singkat untuk risk: "high".
- distanceKm, impliedSpeedKmh, elapsedSeconds
- Jarak dan waktu antara observasi sebelumnya dan saat ini, serta kecepatan yang tersirat. Null pada pengecekan pertama kali pengguna.
- previousLocation
- country, latitude, longitude, dan observedAt untuk baseline tersimpan sebelum panggilan ini. Null pada pengecekan pertama kali pengguna.
- currentLocation
- country, latitude, dan longitude yang diselesaikan dari ip yang Anda kirim pada panggilan ini.
Pre-check, lalu commit
cURL backend
# Pengecekan spekulatif sebelum keputusan autentikasi Anda sendiri — tidak mengubah baseline.
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}'
# Setelah verifikasi password/2FA Anda sendiri berhasil, commit baseline baru.
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 default-nya true, jadi panggilan kedua di atas memperbarui baseline tersimpan; panggilan pertama, dengan commit: false, tidak.
Pertanyaan yang sering diajukan
Apa yang terjadi pada pengecekan pertama?
Ini selalu mengembalikan risk: "low" dengan previousLocation null — belum ada apa pun untuk dibandingkan dengan lokasi saat ini.
Apakah ini menekan lompatan VPN?
Tidak. v1 tidak memiliki penekanan yang sadar-VPN atau sadar-pusat-data, jadi berpindah jaringan atau exit VPN antar login bisa menghasilkan hasil medium atau high dengan sendirinya.
Apakah hasil high adalah bukti akun diretas?
Tidak. Ini adalah perhitungan jarak-per-waktu mentah. Gabungkan dengan bukti autentikasi Anda sendiri alih-alih memperlakukannya sebagai vonis mandiri.
Bisakah saya menghindari pembaruan baseline?
Bisa — kirim commit: false. Pengecekan tetap berjalan dan mengembalikan hasil, tapi lokasi tersimpan tidak diganti.
Berapa lama lokasi sebelumnya disimpan?
Tanpa batas waktu, sampai pengecekan committed berikutnya untuk userId tersebut menimpanya — tidak ada kedaluwarsa otomatis dan tidak ada endpoint penghapusan dalam implementasi saat ini.
Halaman terkait
- Referensi POST /v1/risk/checkReferensi field lengkap untuk endpoint deteksi perjalanan mustahil.
- Deteksi risiko loginMenggunakan perubahan lokasi berbasis IP untuk peninjauan login, setelah akses pengecekan risiko dikonfirmasi.
- KontakHubungi dukungan atau tim sales Watch-IP.
- Positif palsu perjalanan mustahilMengapa skor perjalanan mustahil yang tinggi bukan bukti pengambilalihan akun.