İmzalama ve Yetkilendirme

İşlem yapılabilmesi için iki önemli başlık bulunmaktadır.

X-Signature: Gönderilen veriyi SHA256 algoritması ile hashleyip, elde edilen değeri base64 encoding ile kodlayarak bu başlık altında iletmelisiniz. Authorization: Yetkilendirme bilgilerinizi bu başlık altında iletmelisiniz.

İmzalama ve Hashleme

Gönderilen verilerin güvenliğini sağlamak için, veri içeriğinin (request body veya GET methodunda url parametreleri) bir gizli anahtar (secret) kullanılarak SHA256 algoritmasıyla hashlenmesi gerekiyor. Elde edilen hash değeri base64 encode yapılmalı ve X-Signature başlığında gönderilmelidir.

POST Methodu İçin Örnek Hashleme

const crypto = require('crypto');
const secret = 'secret_key'
var body = '{
    "market": "eos_tl",
    "trade": "buy",
    "price": 19.98,
    "total": 100.40,
    "amount": 10,
    "type": "limit"
}'
const requestSignature = crypto.createHmac('sha256', secret)
                   .update(body)
                   .digest('base64');

DELETE Methodu İçin Örnek Hashleme

const crypto = require('crypto');
const secret = 'secret_key';
const requestUrl = '/order/71po8eyx-592w-jd86-jq76-wqrzjm6kn0vo'; 
const requestSignature = crypto.createHmac('sha256', secret)
                   .update(requestUrl)
                   .digest('base64');

GET Methodu İçin Örnek Hashleme

const crypto = require('crypto');
const secret = 'secret_key'
var queryParams = 'market=acm_tl&trade=buy&price=98.24&total=9600.00&amount=10.000&type=limit'
const requestSignature = crypto.createHmac('sha256', secret)
                   .update(queryParams)
                   .digest('base64');

Tamamlayıcı Notlar

Secret key: Her kullanıcıya özeldir ve üçüncü şahıslarla paylaşılmamalıdır.

İmzalama işlemi: hem request body verisini hem de GET methodunda URL parametrelerini korur, bu sayede veri bütünlüğü ve güvenliği sağlanır.

Last updated