API:et stöder två olika autentiseringsmetoder: Basic Auth och Bearer Token
Obs: Bearer Token stöds för närvarande inte för SSOP
-
Basic Authentication
Du behöver begära användarnamn och lösenord via kundservice
curl -X POST "{{URL}}/ShipServer/{{ID}}/{{PATH}}"
-H "Authorization: basic {{TOKEN}}"
-H "Content-Type: application/json"
--data-raw "{
\"data\": {},
\"options\": {}
}"
- {{TOKEN}} – ditt användarnamn + ":" + lösenord, kodat med base64
-
Bearer Token
client_id och client_secret genereras genom följande steg
1. Generera client_id & client_secret
- Logga in på www.nshiftportal.com med din Owner-användare
- Klicka på Settings-ikonen uppe till höger
- Välj Clients under API Configuration i menyn till höger och klicka på knappen Add
- Ange ett Display Name och en Description
- Se till att kryssrutan Enable är markerad
- Sätt Allowed Scope till Shipment Server (public_api_shipmentserver)
- Spara client_id och client_secret lokalt. När du stänger dialogen kan client_secret inte återställas
För mer detaljerade instruktioner med bilder, se Creating a Client ID and Client Secret for Ship API v2
2. Begär ett access_token med client_id och client_secret
Token är giltigt i 60 minuter innan det löper ut och du behöver autentisera igen
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 ska inte autentisera för varje förfrågan, utan du bör spara token och återanvända det från cache
Svar
{
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjI3QjA1ODk4Nzc1OEUwMkMI1NiIsInR2...",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "public_api_shipmentserver"
}
3. Använda access_token i en förfrågan
access_token måste läggas till i headern för alla förfrågningar.
curl -X POST "{{URL}}/ShipServer/{{ID}}/{{PATH}}"
-H "Authorization: bearer {{TOKEN}}"
-H "Content-Type: application/json"
--data-raw "{
\"data\": {},
\"options\": {}
}"
- {{TOKEN}} – det access_token som erhölls i steg 2