Generér godkendelsesstrenge (REST API)

Senest opdateret: 7. oktober 2026

Nogle REST-slutpunkter muliggør følsomme handlinger, f.eks. afgivelse af ordrer eller anmodning om udbetaling af digitale aktiver. Disse private slutpunkter kan derfor kun tilgås via krypterede anmodninger, og en godkendelsesstreng (authent) skal være inkluderet i hver sådan anmodning. authent beregnes ud fra følgende input:

PostData

postData er en "&"-sammenkædning på formen = og er specifik for hvert REST-slutpunkt.

Eksempel

For at anvende slutpunktet orderbook vælger du argumentet symbol med værdien
fi_xbtusd_180615. postData er da givet ved symbol=fi_xbtusd_180615.

Opdatering af godkendelsesflow for v3-slutpunkter: Fra den 20. februar 2024 opdaterer vi godkendelsesflowet for vores /derivatives/* (v3)-slutpunkter for at følge best practices og sikre en højere sikkerhedsstandard. (detaljer nedenfor)

Ændringer i PostData-generering:


– Før opdatering: Kunder skulle hashkryptere query string-parametre før url-encoding ved Authent-generering, f.eks. `greeting=hello world`.


– Efter opdatering: Godkendelsesprocessen kræver nu hashkryptering af den fulde url-encoded URI-komponent, som den fremgår af anmodningen, f.eks. `greeting=hello%20world`. Denne metode styrker sikkerheden og er i overensstemmelse med best practices.
Denne opdatering er særligt relevant for v3 batchorder-slutpunktet, som accepterer et JSON-indhold i sine query-parametre.


Bagudkompatibilitet og fremtidige planer:


Foreløbig er denne ændring bagudkompatibel. Platformen accepterer begge PostData-genereringsmetoder beskrevet ovenfor. Vi planlægger dog at udfase den gamle metode (hashkryptering af dekodede query string-parametre) for at opretholde de højeste sikkerhedsstandarder. Vi giver god varsel inden ændringen og opfordrer kraftigt alle kunder til at overgå til den nye metode hurtigst muligt for at sikre uafbrudt drift.

Nonce

nonce er en kontinuerligt stigende heltalsparameter. En god nonce er dit systems aktuelle tid i
millisekunder (i strengformat). Vores system tolererer nonces, der er ude af rækkefølge, i en kort periode. nonce er ikke påkrævet.

Eksempel 1415957147987

Mange godkendelsesproblemer skyldes en forkert nonce. Et nyt par API-nøgler nulstiller automatisk nonce og løser disse problemer.

Slutpunktssti

endpointPath er URL-udvidelsen for slutpunktet.

Eksempel /api/v3/orderbook

API Secret

api_secret fås som beskrevet i det foregående afsnit.

Eksempel

rttp4AzwRfYEdQ7R7X8Z/04Y4TZPa97pqCypi3xXxAqftygftnI6H9yGV+O
cUOOJeFtZkr8mVwbAndU3Kz4Q+eG

Baseret på disse input skal authent beregnes som følger:

  1. 1

    Sammenkæd

    postData

    +

    nonce

    +

    endpointPath

  2. 2

    Hashkrypter resultatet fra trin 1 med SHA-256-algoritmen

  3. 3

    Base64-dekod din api_secret

  4. 4

    Brug resultatet fra trin 3 til at hashkryptere resultatet fra trin 2 med HMAC-SHA-512-algoritmen

  5. 5

    Base64-enkod resultatet fra trin 4

Eksempel

Nedenfor vises en implementering af authent i Java. Du kan finde komplette eksempler på forskellige programmeringssprog i afsnittet Yderligere ressourcer. 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();
}