API tukee kahta eri autentikointitapaa: Basic Auth ja Bearer Token
Huom: Bearer Token ei tällä hetkellä ole tuettu SSOP:ssa
-
Basic Authentication
Sinun tulee pyytää käyttäjänimi ja salasana asiakaspalvelun kautta
curl -X POST "{{URL}}/ShipServer/{{ID}}/{{PATH}}"
-H "Authorization: basic {{TOKEN}}"
-H "Content-Type: application/json"
--data-raw "{
\"data\": {},
\"options\": {}
}"
- {{TOKEN}} – käyttäjänimi + ":" + salasana, base64-koodattuna
-
Bearer Token
client_id ja client_secret luodaan seuraavien vaiheiden avulla
1. Luo client_id & client_secret
- Kirjaudu sisään osoitteessa www.nshiftportal.com käyttäen Owner-käyttäjääsi
- Klikkaa oikeassa yläkulmassa olevaa Settings-kuvaketta
- Valitse oikeanpuoleisesta valikosta Clients kohdasta API Configuration ja klikkaa Add-painiketta
- Anna uudelle merkinnälle Display Name ja Description
- Varmista, että Enable-valintaruutu on valittuna
- Aseta Allowed Scope arvoksi Shipment Server (public_api_shipmentserver)
- Tallenna client_id ja client_secret paikallisesti. Kun suljet dialogin, client_secret ei ole enää palautettavissa
Katso tarkemmat ohjeet kuvien kanssa: Creating a Client ID and Client Secret for Ship API v2
2. Pyydä access_token käyttäen client_id:tä ja client_secretia
Token on voimassa 60 minuuttia, jonka jälkeen sinun täytyy autentikoitua uudelleen
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}}"
- Sinun ei tule autentikoitua jokaiselle pyynnölle, vaan sinun tulisi tallentaa token ja käyttää sitä uudelleen välimuistista
Vastaus
{
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjI3QjA1ODk4Nzc1OEUwMkMI1NiIsInR2...",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "public_api_shipmentserver"
}
3. access_tokenin käyttäminen pyynnössä
access_token tulee lisätä kaikkien pyyntöjen headeriin.
curl -X POST "{{URL}}/ShipServer/{{ID}}/{{PATH}}"
-H "Authorization: bearer {{TOKEN}}"
-H "Content-Type: application/json"
--data-raw "{
\"data\": {},
\"options\": {}
}"
- {{TOKEN}} – vaiheessa 2 saatu access_token