Generera autentiseringssträngar (REST API)

Senast uppdaterad: 7 oktober 2026

Vissa REST-slutpunkter tillåter känsliga åtgärder som att lägga order eller begära uttag av digitala tillgångar. Dessa privata slutpunkter kan bara anropas via krypterade förfrågningar, och en autentiseringssträng (authent) måste ingå i varje sådan förfrågan. authent beräknas utifrån följande indata:

PostData

postData är en "&"-konkatenering på formen = och är specifik för varje REST-slutpunkt.

Exempel

För att använda slutpunkten orderbook väljer du argumentet symbol med värdet
fi_xbtusd_180615. postData blir då symbol=fi_xbtusd_180615.

Uppdatering av autentiseringsflödet för v3-slutpunkter: Från och med den 20 februari 2024 uppdaterar vi autentiseringsflödet för våra /derivatives/* (v3)-slutpunkter för att följa bästa praxis och uppnå en högre säkerhetsstandard. (detaljer nedan)

Ändringar i PostData-generering:


– Före uppdateringen: Kunder behövde hasha query string-parametrar innan url-kodning för Authent-generering, t.ex. `greeting=hello world`.


– Efter uppdateringen: Autentiseringsprocessen kräver nu hashning av den fullständiga, url-kodade URI-komponenten i den form den förekommer i förfrågan, t.ex. `greeting=hello%20world`. Den här metoden stärker säkerheten och följer bästa praxis.
Uppdateringen är särskilt relevant för v3-slutpunkten batchorder, som tar emot en JSON-body i sina query-parametrar.


Bakåtkompatibilitet och framtida planer:


Ändringen är tills vidare bakåtkompatibel. Plattformen accepterar båda PostData-genereringsmetoderna som beskrivs ovan. Vi planerar dock att fasa ut den gamla metoden (hashning av avkodade query string-parametrar) för att upprätthålla högsta säkerhetsstandard. Vi meddelar i god tid och uppmanar alla kunder att gå över till den nya metoden så snart som möjligt för att säkerställa oavbruten tjänst.

Nonce

nonce är en kontinuerligt ökande heltalsparameter. Ett lämpligt nonce-värde är systemtiden i
millisekunder (i strängformat). Systemet tolererar nonce-värden som kommer i fel ordning under en kortare period. nonce är inte obligatoriskt.

Exempel 1415957147987

Många autentiseringsproblem orsakas av ett felaktigt nonce-värde. Ett nytt par API-nycklar återställer nonce automatiskt och löser problemet.

Slutpunktssökväg

endpointPath är URL-tillägget för slutpunkten.

Exempel /api/v3/orderbook

API-hemlighet

api_secret hämtas enligt beskrivningen i föregående avsnitt.

Exempel

rttp4AzwRfYEdQ7R7X8Z/04Y4TZPa97pqCypi3xXxAqftygftnI6H9yGV+O
cUOOJeFtZkr8mVwbAndU3Kz4Q+eG

Utifrån dessa indata beräknas authent på följande sätt:

  1. 1

    Sammanfoga

    postData

    +

    nonce

    +

    endpointPath

  2. 2

    Hasha resultatet från steg 1 med SHA-256-algoritmen

  3. 3

    Base64-avkoda din api_secret

  4. 4

    Använd resultatet från steg 3 för att hasha resultatet från steg 2 med HMAC-SHA-512-algoritmen

  5. 5

    Base64-koda resultatet från steg 4

Exempel

Nedan visas en implementering av authent i Java. För fullständiga, fungerande exempel i olika programmeringsspråk, se avsnittet Ytterligare resurser. 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();
}