De API ondersteunt twee verschillende authenticaties Basic Auth en Bearer Token
Opmerking: Bearer Token wordt momenteel niet ondersteund voor SSOP
-
Basic Authentication
Je moet de username en password aanvragen via de klantenservice
curl -X POST "{{URL}}/ShipServer/{{ID}}/{{PATH}}"
-H "Authorization: basic {{TOKEN}}"
-H "Content-Type: application/json"
--data-raw "{
\"data\": {},
\"options\": {}
}"
- {{TOKEN}} - je username + ":" + password gecodeerd met base64
-
Bearer Token
De client_id en client_screct worden gegenereerd door de volgende stappen te volgen
1. Genereer de client_id & client_secret
- Log in op www.nshiftportal.com met je Owner-gebruiker
- Klik op het Settings icoon rechtsboven
- Selecteer in het menu rechts Clients onder API Configuration en klik op de knop Add
- Geef de nieuwe invoer een Display Name en een Description
- Zorg ervoor dat de Enable checkbox is checked
- Stel Allowed Scope in op Shipment Server (public_api_shipmentserver)
- Save de client_id en client_secret lokaal; zodra je het dialoogvenster sluit, kan de client_secret niet meer worden hersteld
Voor meer gedetailleerde instructies met afbeeldingen, zie Creating a Client ID and Client Secret for Ship API v2
2. Vraag een access_token aan met behulp van de client_id en client_secret
De token is 60 minuten geldig voordat deze verloopt en je opnieuw moet authenticeren
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}}"
- Je moet niet opnieuw authenticeren voor elke aanvraag; je should het opslaan en reuse het vanuit een cache
Response
{
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjI3QjA1ODk4Nzc1OEUwMkMI1NiIsInR2...",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "public_api_shipmentserver"
}
3. Gebruik van de access token in een aanvraag
De access_token moet worden toegevoegd aan de header van alle aanvragen.
curl -X POST "{{URL}}/ShipServer/{{ID}}/{{PATH}}"
-H "Authorization: bearer {{TOKEN}}"
-H "Content-Type: application/json"
--data-raw "{
\"data\": {},
\"options\": {}
}"
- {{TOKEN}} - de access_token ontvangen in stap 2