Jana rentetan pengesahan (REST API)

Terakhir dikemas kini: 31 Mac 2025

Sesetengah titik akhir REST membenarkan pelaksanaan operasi sensitif seperti membuat pesanan atau meminta pengeluaran aset digital. Oleh itu, titik akhir persendirian ini hanya boleh dipanggil melalui permintaan yang disulitkan dan rentetan pengesahan (authent) mesti disertakan dalam setiap permintaan tersebut. authent dikira daripada input berikut:

PostData

postData ialah penggabungan "&" dalam bentuk = dan adalah khusus untuk setiap titik akhir REST.

Contoh

Untuk mengendalikan buku pesanan endpoint, anda memilih simbol argumen dengan nilai
fi_xbtusd_180615. postData kemudian diberikan oleh symbol=fi_xbtusd_180615.

Kemas Kini Aliran Pengesahan untuk titik akhir v3: Mulai 20 Februari 2024, untuk menyelaraskan dengan amalan terbaik dan memastikan standard keselamatan yang lebih tinggi, kami akan mengemas kini aliran pengesahan untuk titik akhir /derivatives/* (v3) kami. (butiran di bawah)

Perubahan Penjanaan PostData:


- Sebelum keluaran: Pengguna dikehendaki untuk hash parameter rentetan pertanyaan sebelum pengekodan URL untuk penjanaan Authent, cth., `greeting=hello world`.


- Selepas keluaran: Proses pengesahan kini akan memerlukan hashing komponen URI yang penuh dan berkod URL seperti yang muncul dalam permintaan, cth., `greeting=hello%20world`. Kaedah ini meningkatkan keselamatan dan menyelaraskan dengan amalan terbaik.
Kemas kini ini amat relevan untuk titik akhir batchorder v3, yang menerima JSON body dalam parameter pertanyaannya.


Keserasian Ke Belakang dan Rancangan Masa Depan:


Buat masa ini, perubahan ini adalah serasi ke belakang. Platform akan menerima kedua-dua kaedah penjanaan PostData yang diterangkan di atas. Walau bagaimanapun, kami berhasrat untuk menghentikan kaedah lama (hashing parameter rentetan pertanyaan yang dinyahkod) pada masa hadapan untuk mengekalkan standard keselamatan tertinggi. Kami akan memberikan notis yang mencukupi sebelum perubahan ini dan amat menggalakkan semua pengguna untuk beralih kepada kaedah baharu secepat mungkin untuk memastikan kelangsungan perkhidmatan yang lancar.

Nonce

nonce ialah parameter integer yang terus meningkat. nonce yang baik ialah masa sistem anda dalam
milisaat (dalam format rentetan). Sistem kami bertolak ansur dengan nonce yang tidak teratur untuk tempoh masa yang singkat. nonce tidak diperlukan.

Contoh 1415957147987

Banyak isu pengesahan berkaitan dengan nonce yang salah. Sepasang API keys baharu akan secara automatik menetapkan semula nonce dan menyelesaikan isu-isu ini.

Endpoint Path

endpointPath Ini ialah sambungan URL titik akhir.

Contoh /api/v3/orderbook

API Secret

api_secret diperoleh seperti yang diterangkan dalam bahagian sebelumnya.

Contoh

rttp4AzwRfYEdQ7R7X8Z/04Y4TZPa97pqCypi3xXxAqftygftnI6H9yGV+O
cUOOJeFtZkr8mVwbAndU3Kz4Q+eG

Berdasarkan input ini, authent perlu dikira seperti berikut:

  1. 1

    Gabungkan

    postData

    +

    nonce

    +

    endpointPath

  2. 2

    Hash hasil langkah 1 dengan algoritma SHA-256

  3. 3

    Nyahkod Base64 api_secret anda

  4. 4

    Gunakan hasil langkah 3 untuk hash hasil langkah 2 dengan algoritma HMAC-SHA-512

  5. 5

    Kodkan Base64 hasil langkah 4

Contoh

Berikut menunjukkan implementasi authent dalam Java. Untuk contoh kerja penuh dalam bahasa pengaturcaraan yang berbeza, lihat Bahagian Sumber Tambahan. public static String getAuthent(String postData, String nonce, String endpointPath, String secretKeyBase64)
{
Mac mac512;
MessageDigest sha256;
try {
SecretKey secretKey = new SecretKeySpec 
(Base64.decode(secretKeyBase64.getBytes()), HMAC_SHA_512);
mac512 = Mac.getInstance(HMAC_SHA_512);
mac512.init(secretKey);
sha256 = MessageDigest.getInstance("SHA-256");
} catch (IOException e) {
...
} catch (InvalidKeyException e) {
...
} catch (NoSuchAlgorithmException e) {
...
} sha256.update(postData.getBytes());
sha256.update(nonce.getBytes());
sha256.update(endpointPath.getBytes());
mac512.update(sha256.digest());
return Base64.encodeBytes(mac512.doFinal()).trim();
}

Perlu bantuan lebih lanjut?