Luo todennusmerkkijonoja (REST API)

Viimeksi päivitetty: 31.3.2025

Jotkin REST-päätepisteet mahdollistavat arkaluonteisten toimintojen suorittamisen, kuten tilausten tekemisen tai digitaalisen omaisuuden noston pyytämisen. Näitä yksityisiä päätepisteitä voidaan siksi kutsua vain salattujen pyyntöjen kautta, ja jokaisessa tällaisessa pyynnössä on oltava todennusmerkkijono (authent). Authent lasketaan seuraavista syötteistä:

PostData

postData on "&"-ketjutus muodossa <argumentti>=<arvo> ja se on spesifinen kullekin REST-päätepisteelle.

Esimerkki

Käyttääksesi päätepistettä orderbook valitset argumentin symbol arvolla
fi_xbtusd_180615. postData annetaan sitten muodossa symbol=fi_xbtusd_180615.

Todennusvirran päivitys v3-päätepisteille: 20. helmikuuta 2024 alkaen, parhaiden käytäntöjen mukaisesti ja korkeamman turvallisuusstandardin varmistamiseksi, päivitämme todennusvirran /derivatives/* (v3) -päätepisteillemme. (lisätietoja alla)

PostDatan luonnin muutokset:


- Ennen julkaisua: Käyttäjien oli hajautettava kyselymerkkijonoparametrit ennen URL-koodausta Authent-luontia varten, esim. `greeting=hello world`.


- Julkaisun jälkeen: Todennusprosessi edellyttää nyt koko URL-koodatun URI-komponentin hajauttamista sellaisena kuin se näkyy pyynnössä, esim. `greeting=hello%20world`. Tämä menetelmä parantaa turvallisuutta ja on linjassa parhaiden käytäntöjen kanssa.
Tämä päivitys on erityisen relevantti v3 batchorder -päätepisteelle, joka hyväksyy JSON-rungon kyselyparametreissaan.


Taaksepäin yhteensopivuus ja tulevaisuuden suunnitelmat:


Toistaiseksi tämä muutos on taaksepäin yhteensopiva. Alusta hyväksyy molemmat yllä kuvatut PostDatan luontimenetelmät. Pyrimme kuitenkin luopumaan vanhasta menetelmästä (dekoodattujen kyselymerkkijonoparametrien hajauttaminen) tulevaisuudessa korkeimpien turvallisuusstandardien ylläpitämiseksi. Ilmoitamme tästä muutoksesta hyvissä ajoin ja kannustamme kaikkia käyttäjiä siirtymään uuteen menetelmään mahdollisimman pian varmistaaksemme saumattoman palvelun jatkuvuuden.

Nonce

nonce on jatkuvasti kasvava kokonaislukuparametri. Hyvä nonce on järjestelmäsi aika
millisekunteina (merkkijonona). Järjestelmämme sietää nonces-arvoja, jotka ovat epäjärjestyksessä lyhyen aikaa. Nonce ei ole pakollinen.

Esimerkki 1415957147987

Monet todennusongelmat liittyvät virheelliseen nonce-arvoon. Uusi API-avainpari nollaa nonce-arvon automaattisesti ja ratkaisee nämä ongelmat.

Päätepisteen polku

endpointPath Tämä on päätepisteen URL-laajennus.

Esimerkki /api/v3/orderbook

API-salaisuus

api_secret saadaan edellisessä osiossa kuvatulla tavalla.

Esimerkki

rttp4AzwRfYEdQ7R7X8Z/04Y4TZPa97pqCypi3xXxAqftygftnI6H9yGV+O
cUOOJeFtZkr8mVwbAndU3Kz4Q+eG

Näiden syötteiden perusteella authent on laskettava seuraavasti:

  1. 1

    Yhdistä

    postData

    +

    nonce

    +

    endpointPath

  2. 2

    Hajauta vaiheen 1 tulos SHA-256-algoritmilla

  3. 3

    Base64-dekoodaa api_secret-avaimesi

  4. 4

    Käytä vaiheen 3 tulosta hajauttaaksesi vaiheen 2 tuloksen HMAC-SHA-512-algoritmilla

  5. 5

    Base64-koodaa vaiheen 4 tulos

Esimerkki

Seuraavassa on esimerkki authent-toteutuksesta Javalla. Täydelliset toimivat esimerkit eri ohjelmointikielillä löytyvät osiosta Lisäresurssit. 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();
}

Tarvitsetko lisää apua?