Penandatanganan Permintaan
Format Permintaan
Payload Tanda Tangan
Aturan utama:
timestampharus berupa timestamp Unix milidetik. Jendela toleransi server adalah ±10 detik.signatureditempatkan dalam string kueri URL , tetapi tidak termasuk dalam payload tanda tangan.- Server memverifikasi string query asli setelah menghapus
signature; server tidak mengatur ulang parameter query. - Urutan parameter kueri yang digunakan untuk penandatanganan harus sesuai dengan permintaan URL sebenarnya.
- Jika ada badan permintaan, string JSON yang digunakan untuk penandatanganan harus persis sama dengan badan yang sebenarnya dikirimkan.
- Jalur terkait pesanan melakukan pemeriksaan ulang tanda tangan. Menggunakan kembali tanda tangan yang sama dalam waktu singkat menghasilkan
Signature replay detected.
Waktu Server
Contoh respons:
Klien harus menghitung timeOffsetMs = serverTimestampMs - localTimestampMs, lalu menggunakan timestamp = nowMs + timeOffsetMs untuk permintaan yang ditandatangani berikutnya. Jika server mengembalikan Timestamp outside of tolerance window, segera melakukan sinkronisasi ulang dan membuat ulang tanda tangan.
Contoh Penandatanganan GET
Permintaan sebenarnya:
Payload tanda tangan:
Contoh Penandatanganan POST
Permintaan sebenarnya:
Badan permintaan:
Payload tanda tangan: