Generování ověřovacích řetězců (REST API)

Naposledy aktualizováno: 7. října 2026

Některé REST koncové body umožňují provádět citlivé operace, jako je zadávání příkazů nebo žádost o výběr digitálních aktiv. Tyto soukromé koncové body lze proto volat pouze prostřednictvím šifrovaných žádostí a každá taková žádost musí obsahovat ověřovací řetězec (authent). Hodnota authent se vypočítává z následujících vstupů:

PostData

postData je zřetězení hodnot spojených znakem „&" ve formátu = a je specifické pro každý REST koncový bod.

Příklad

Pro práci s koncovým bodem orderbook zvolte argument symbol s hodnotou
fi_xbtusd_180615. Hodnota postData pak bude symbol=fi_xbtusd_180615.

Aktualizace ověřovacího postupu pro koncové body v3: Od 20. února 2024 aktualizujeme ověřovací postup pro naše koncové body /derivatives/* (v3) v souladu s osvědčenými postupy a za účelem zvýšení úrovně zabezpečení. (podrobnosti níže)

Změny při generování PostData:


– Před vydáním: Klienti museli před url-kódováním pro generování hodnoty Authent nejprve zahashovat parametry řetězce dotazu, např. `greeting=hello world`.


– Po vydání: Ověřovací proces nyní vyžaduje hashování celé url-kódované komponenty URI tak, jak se zobrazuje v žádosti, např. `greeting=hello%20world`. Tato metoda zvyšuje zabezpečení a odpovídá osvědčeným postupům.
Tato aktualizace je zvláště důležitá pro koncový bod v3 batchorder, který přijímá tělo JSON v parametrech dotazu.


Zpětná kompatibilita a plány do budoucna:


Tato změna je prozatím zpětně kompatibilní. Platforma bude akceptovat oba výše popsané způsoby generování PostData. Starý způsob (hashování dekódovaných parametrů řetězce dotazu) však plánujeme v budoucnu vyřadit, abychom udrželi nejvyšší standardy zabezpečení. O této změně vás s dostatečným předstihem informujeme a důrazně doporučujeme všem klientům přejít na nový způsob co nejdříve, aby nedošlo k přerušení služeb.

Nonce

nonce je průběžně se zvyšující celočíselný parametr. Vhodnou hodnotou nonce je čas vašeho systému v
milisekundách (ve formátu řetězce). Náš systém krátkodobě toleruje hodnoty nonce přijaté mimo pořadí. Parametr nonce není povinný.

Příklad 1415957147987

Mnohé problémy s ověřením jsou způsobeny nesprávnou hodnotou nonce. Vytvoření nového páru klíčů API hodnotu nonce automaticky resetuje a tyto problémy vyřeší.

Cesta koncového bodu

endpointPath je URL rozšíření koncového bodu.

Příklad /api/v3/orderbook

API Secret

Hodnota api_secret se získá způsobem popsaným v předchozí části.

Příklad

rttp4AzwRfYEdQ7R7X8Z/04Y4TZPa97pqCypi3xXxAqftygftnI6H9yGV+O
cUOOJeFtZkr8mVwbAndU3Kz4Q+eG

Na základě těchto vstupů je třeba hodnotu authent vypočítat následujícím způsobem:

  1. 1

    Zřetězte

    postData

    +

    nonce

    +

    endpointPath

  2. 2

    Výsledek kroku 1 zahashujte pomocí algoritmu SHA-256

  3. 3

    Dekódujte Base64 svůj api_secret

  4. 4

    Výsledkem kroku 3 zahashujte výsledek kroku 2 pomocí algoritmu HMAC-SHA-512

  5. 5

    Zakódujte Base64 výsledek kroku 4

Příklad

Níže je uvedena implementace authent v jazyce Java. Úplné funkční příklady v různých programovacích jazycích najdete v části Další zdroje. 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();
}