Je controleert de Robaws-Signature-header met het secret dat je bij het aanmaken van het endpoint kreeg.
Dit is belangrijk omdat je anders niet kunt vertrouwen dat de aanroep van Robaws komt. Er wordt namelijk de volledige data meegestuurd, niet alleen het id.
De controle bestaat uit vier stappen: de timestamp en handtekening uit de header halen, de signed_payload opbouwen, de verwachte handtekening berekenen met HMAC-SHA256 en die vergelijken met de ontvangen handtekening.
Zo doe je het
- Splits de
Robaws-Signature-header op het teken komma en daarna op het teken is-gelijk om de timestamp (t) en de handtekening (v1) te halen - Maak de signed_payload door de timestamp, een punt en de JSON-body achter elkaar te zetten
- Bereken een HMAC met SHA256, met het secret als sleutel en de signed_payload als bericht, en zet het resultaat om naar hex
- Vergelijk de verwachte handtekening met die in de header met een vergelijking in constante tijd, en controleer of het verschil in tijd binnen je tolerantie valt