Die API unterstützt zwei verschiedene Authentifizierungen Basic Auth und Bearer Token
Hinweis: Bearer Token wird derzeit nicht für SSOP unterstützt
-
Basic Authentication
Sie müssen Benutzername und Passwort über den Kundendienst anfordern
curl -X POST "{{URL}}/ShipServer/{{ID}}/{{PATH}}" -H "Authorization: basic {{TOKEN}}" -H "Content-Type: application/json" --data-raw "{ \"data\": {}, \"options\": {} }"
- {{TOKEN}} – Ihr Benutzername + ":" + Passwort, kodiert mit base64
-
Bearer Token
Die client_id und das client_secret werden durch die folgenden Schritte generiert
1. client_id & client_secret generieren
- Melden Sie sich bei www.nshiftportal.com mit Ihrem Owner-Benutzer an
- Klicken Sie oben rechts auf das Symbol Settings
- Wählen Sie im Menü rechts Clients unter API Configuration und klicken Sie auf die Schaltfläche Add
- Geben Sie einen Display Name und eine Description ein
- Stellen Sie sicher, dass das Kontrollkästchen Enable aktiviert ist
- Setzen Sie Allowed Scope auf Shipment Server (public_api_shipmentserver)
- Speichern Sie die client_id und das client_secret lokal. Nachdem Sie den Dialog schließen, kann das client_secret nicht wiederhergestellt werden
Für eine detailliertere Anleitung mit Bildern siehe Creating a Client ID and Client Secret for Ship API v2
2. access_token mit client_id und client_secret anfordern
Das Token ist 60 Minuten gültig, bevor es abläuft und Sie sich erneut authentifizieren müssen
curl -X POST "https://account.nshiftportal.com/idp/connect/token" --header "Content-Type: application/x-www-form-urlencoded" --data-urlencode "grant_type=client_credentials" --data-urlencode "client_id={{CLIENT_ID}}" --data-urlencode "client_secret={{CLIENT_SECRET}}"
- Sie sollten sich nicht für jede Anfrage erneut authentifizieren, sondern das Token speichern und aus einem Cache wiederverwenden
Antwort
{ "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjI3QjA1ODk4Nzc1OEUwMkMI1NiIsInR2...", "expires_in": 3600, "token_type": "Bearer", "scope": "public_api_shipmentserver" }
3. Verwendung des access_token in einer Anfrage
Das access_token muss im Header aller Anfragen hinzugefügt werden.
curl -X POST "{{URL}}/ShipServer/{{ID}}/{{PATH}}" -H "Authorization: bearer {{TOKEN}}" -H "Content-Type: application/json" --data-raw "{ \"data\": {}, \"options\": {} }"
- {{TOKEN}} – das access_token aus Schritt 2