Robię integrację do Apaczka.pl i kolejny mądry wynalazek do autoryzacji użytkownika. Czy ktoś jest w stanie mi wytłumaczyć jak mam to napisać w C# za pomocą RestSharp?
Opis pola signature
Wszystkie przesyłane dane muszą zawierać signature wygenerowany na podstawie przesyłanych danych. Signature musi być wygenerowana na podstawie App ID, nazwy endpoint'u, danych w request oraz daty wygaśnięcia ważności request`u używając metody HMAC, z wykorzystaniem algorytmu SHA256, podając jako klucz App Secret. Przykładowy kod do generowania signature w PHP:
function getSignature( $string, $key ) {
return hash_hmac( 'sha256', $string, $key );
}
function stringToSign( $appId, $route, $data, $expires ) {
return sprintf( "%s:%s:%s:%s", $appId, $route, $data, $expires );
}
$signature = getSignature( stringToSign( $appId, $route, $data, $expires ), $appSecret );
$requestData = [
'app_id' => $appId,
'request' => $data,
'expires' => $expires,
'signature' => $signature
];
app_id - identyfikator uzyskany po założeniu aplikacji w zakładce Web Api.
request - zestaw wymaganych danych zapisanych w strukturze JSON. Dane są opisane przy każdym endpoint.
expires - timestamp do kiedy ważny jest request. Timestamp musi być większy niż obecny. Maksymalna ważność request`u to 30 minut.
signature - podpis zestawu danych. Sposób generowania tego klucza została opisana poniżej.