Signature Generation
Referensi ini menjelaskan langkah inti pembuatan signature HMAC-SHA256.
Langkah utama
- Build canonical request.
- Hash canonical request (SHA-256).
- Build string to sign.
- Hitung HMAC-SHA256 menggunakan secret key.
Canonical request format
text
<HTTP_METHOD>
<REQUEST_PATH>
<QUERY_STRING>
<CANONICAL_HEADERS>
<SIGNED_HEADERS>
<BODY_HASH>Signed headers order
- service:
x-date;x-request-id;x-client-type - user:
x-date;x-tenant-id;x-request-id;x-client-type
String to sign
text
HMAC-SHA256
<X-Date>
<SHA256(canonical-request)>Common mistakes
- Header order salah.
- Canonical headers tidak diakhiri newline
\n. - Query string tidak ikut canonical request.
- Body hash tidak sesuai body yang dikirim.
Example (TypeScript)
ts
import { createHash, createHmac } from "node:crypto";
const canonicalHash = createHash("sha256").update(canonicalRequest).digest("hex");
const stringToSign = ["HMAC-SHA256", xDate, canonicalHash].join("\n");
const signature = createHmac("sha256", secretKey).update(stringToSign).digest("hex");Untuk contoh lengkap, lihat versi English yang lebih detail:
/api-reference/signature-generation