API-et støtter to forskjellige autentiseringsmetoder: Basic Auth og Bearer Token
Merk: Bearer Token er for øyeblikket ikke støttet for SSOP
-
Basic Authentication
Du må be om brukernavn og passord via kundeservice
curl -X POST "{{URL}}/ShipServer/{{ID}}/{{PATH}}"
-H "Authorization: basic {{TOKEN}}"
-H "Content-Type: application/json"
--data-raw "{
\"data\": {},
\"options\": {}
}"
- {{TOKEN}} – brukernavn + ":" + passord, kodet med base64
-
Bearer Token
client_id og client_secret genereres ved å følge disse trinnene
1. Generer client_id & client_secret
- Logg inn på www.nshiftportal.com med din Owner-bruker
- Klikk på Settings-ikonet øverst til høyre
- Velg Clients under API Configuration i menyen til høyre og klikk på Add-knappen
- Gi den nye oppføringen et Display Name og en Description
- Sørg for at Enable-avkrysningsboksen er krysset av
- Sett Allowed Scope til Shipment Server (public_api_shipmentserver)
- Lagre client_id og client_secret lokalt. Når du lukker dialogen, kan ikke client_secret gjenopprettes
For mer detaljerte instruksjoner med bilder, se Creating a Client ID and Client Secret for Ship API v2
2. Be om access_token ved hjelp av client_id og client_secret
Tokenet er gyldig i 60 minutter før det utløper, og du må autentisere på nytt
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}}"
- Du skal ikke autentisere på nytt for hver forespørsel, du bør lagre tokenet og gjenbruke det fra cache
Svar
{
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjI3QjA1ODk4Nzc1OEUwMkMI1NiIsInR2...",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "public_api_shipmentserver"
}
3. Bruke access_token i en forespørsel
access_token må legges til i headeren på alle forespørsler.
curl -X POST "{{URL}}/ShipServer/{{ID}}/{{PATH}}"
-H "Authorization: bearer {{TOKEN}}"
-H "Content-Type: application/json"
--data-raw "{
\"data\": {},
\"options\": {}
}"
- {{TOKEN}} – access_token mottatt i steg 2