Appearance
2. Client Token Hash Oluşturun
Client Token Nedir?
Client Token, her bir entegratör veya uygulamanın sistemde benzersiz şekilde tanımlanmasını sağlayan özel bir anahtar değeridir. Bu token, API’ye erişim için kimlik doğrulamada kullanılır ve her istekle birlikte HTTP Header üzerinden açık olarak gönderilir.
Bununla birlikte, güvenlik katmanını artırmak için imza (x_signature) hesaplama sürecinde token’ın doğrudan değeri değil, SHA-256 hashlenmiş ve Base64 ile encode edilmiş hali kullanılır.
Önemli Not
Client Token değeri yalnızca kimlik doğrulama için kullanılır; hiçbir koşulda sabit kodlanmamalı (hardcoded) ve güvenli ortamlardan (örn. environment variable, secrets manager) okunmalıdır.
Nasıl Üretilmeli?
Client Token değerini imza hesaplamasında kullanabilmek için şu adımlar takip edilir:
- Client Token String’i alınır → Size sistem tarafından özel olarak tanımlanan token değeri.
- SHA-256 ile hashlenir → Hash fonksiyonu ile geri döndürülemez, sabit uzunluklu bir değer elde edilir.
- Base64 formatına encode edilir → Hash sonucu okunabilir ve taşınabilir bir formata dönüştürülür.
Örnek Kodlar
java
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.Base64;
public class ClientTokenUtil {
public static void main(String[] args) throws Exception {
String clientToken = "myClientToken123";
// 1. SHA-256 hash
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(clientToken.getBytes(StandardCharsets.UTF_8));
// 2. Base64 encode
String encodedToken = Base64.getEncoder().encodeToString(hash);
System.out.println("Encoded Token: " + encodedToken);
}
}C#
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
string clientToken = "myClientToken123";
// 1. SHA-256 hash
using (SHA256 sha256 = SHA256.Create())
{
byte[] hashBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(clientToken));
// 2. Base64 encode
string encodedToken = Convert.ToBase64String(hashBytes);
Console.WriteLine($"Encoded Token: {encodedToken}");
}
}
}Örnek Client Token
text
8e414ff7-5faf-407b-b084-2b5b2b7e0099Örnek Client Token Hashli Hali:
text
MtvH3Fh746S86CT6ArkM01OCbNTsrk+KnTDf2a6EKaM=
