Watch-IP

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