Zum Hauptinhalt springen
Version: Guardian v0.1.0

Authentifizierung

API-Schlüssel​

Guardian verwendet einen sp_live_*-API-Schlüssel, der vom Surt-Team bereitgestellt wird - aber in v0.3.0 wird dieser Schlüssel nur von deinem Backend gehalten. Er dient dazu, kurzlebige JWTs zu erzeugen, und gelangt niemals an den Client (mobile App oder Web). Der Client hält stets nur die kurzlebigen JWTs, die ihm dein Backend übergibt.

API-Schlüssel beschaffen​

  1. Kontaktieren Sie das Surt-Team, um Ihre Organisationsanmeldedaten zu erhalten
  2. Melden Sie sich in Ihrem Surt-Dashboard an
  3. Navigieren Sie zu Einstellungen → Entwickler
  4. Kopieren Sie Ihren API-Schlüssel und speichern Sie ihn als serverseitiges Geheimnis

So funktioniert die Authentifizierung (v0.3.0)​

  1. Dein Backend hält den sp_live_*-API-Schlüssel (serverseitiges Geheimnis).
  2. Vor dem Aufruf von verify() fordert deine App einen Token von deinem eigenen Backend an.
  3. Dein Backend ruft POST /geolocation/preflight mit Authorization: Bearer <api key> und dem Transaktionskontext auf und gibt dann data.token (das JWT) an die App zurück.
  4. Deine App übergibt das JWT an verify(jwt).

Hinweise:

  • Frisches JWT pro verify() - jedes JWT ist einmalig verwendbar. Die Wiederverwendung eines JWT wird vom Backend abgelehnt.
  • collect()-JWT ist optional - übergib es nur, um die öffentliche IP des Geräts in das Payload einzubetten. Ein collect()-JWT kann wiederverwendet oder vollständig weggelassen werden.

Preflight-Anfrage​

POST https://api.surt.com/geolocation/preflight
Authorization: Bearer sp_live_xxx
Content-Type: application/json

{
"customer_id": "user_abc123",
"transaction_type": "login",
"transaction_name": "User Login",
"name": "John Doe",
"email": "john@example.com"
}

Antwort:

{
"data": {
"token": "<jwt>"
}
}

Der Kunden- und Transaktionskontext lebt in den JWT-Claims (vom Backend zur Preflight-Zeit gesetzt), sodass der Client niemals eine Kunden-ID oder einen Transaktionstyp übergibt.

Paketzugriffstoken​

Das SDK selbst wird als privates Paket vertrieben. Sie erhalten auch Zugriffstoken für die Paketinstallation. Diese sind getrennt vom oben genannten API-Schlüssel:

PlattformToken-TypKonfigurationsort
React Nativenpm-Token.npmrc im Projektstamm
iOSGitHub-Token~/.netrc
AndroidGitHub-Tokengradle.properties

Details finden Sie in den plattformspezifischen Installationsleitfäden:

Umgebungen​

UmgebungBasis-URLVerwendung
productionhttps://api.surt.comLive-Betrieb
sandboxhttps://sandbox-api.surt.comTests und Entwicklung
warnung

Bewahren Sie Ihren sp_live_*-API-Schlüssel jederzeit serverseitig auf - er dient ausschließlich dazu, kurzlebige JWTs zu erzeugen. Betten Sie ihn niemals in App- oder Web-Client-Code ein. Der Client hält stets nur kurzlebige JWTs.