Podpisywanie żądań
Podpisywanie żądań
Format żądania
Ładunek sygnaturowy
Kluczowe zasady:
timestampmusi być znacznikiem czasowym o milisekundzie Uniksa. Okno tolerancji serwera to ±10 sekund.signaturejest umieszczane w ciągu zapytania URL , ale nie jest uwzględnione w ładunku sygnatury.- Serwer weryfikuje oryginalny ciąg zapytania po usunięciu
signature; nie zmienia kolejności parametrów zapytania. - Kolejność parametrów zapytań używana do podpisywania musi odpowiadać rzeczywistemu żądaniu URL.
- Jeśli istnieje ciało żądania, ciąg JSON używany do podpisywania musi dokładnie odpowiadać rzeczywistemu ciału przesyłanemu.
- Ścieżki związane z kolejnością wykonują sprawdzanie powtórek sygnatury. Ponowne użycie tego samego podpisu w krótkim czasie zwraca
Signature replay detected.
Czas na serwerze
Przykład odpowiedzi:
Klienci powinni obliczyć timeOffsetMs = serverTimestampMs - localTimestampMs, a następnie użyć timestamp = nowMs + timeOffsetMs do kolejnych podpisanych żądań. Jeśli serwer zwróci Timestamp outside of tolerance window, natychmiast zsynchronizuje czas synchronizacji i wygeneruje podpis.
GET Przykład podpisywania
Rzeczywiste żądanie:
Ładunek sygnaturowy:
POST Przykład podpisywania
Rzeczywiste żądanie:
Główna część zgłoszenia:
Ładunek sygnaturowy:
Przykład podpisywania w Pythonie
Powiązane przewodniki po bezpieczeństwie
-
[API Key Zarząd (/developer-api/api-key-management)
-
Kody błędów i rozwiązywanie problemów
Powiązane strony