Authentication

I denne artikel:


Attention   

 

Introduktion

For at interagere med Hostedshop GraphQL API, skal du angive passende adgangsoplysninger til godkendelse med hvert HTTP request. Fremgangsmåden til opsætning og anskaffelse af disse oplysninger er beskrevet i de følgende afsnit.

 

Administration af OAuth klienter

For at generere tokens til godkendelse med OAuth2, kræves at du opretter en OAuth klient i shoppens administration. Du finder indstillingerne for OAuth under Kontrolpanel > API:

Klik på knappen Opret OAuth Klient.

 

Indtast den ønskede titel og klik Gem:

 

I API-oversigten vil den nye klient nu være synlig med klientkoden:

  1. Vis API-log
  2. Rediger klient
  3. Luk klient

 

Klik på blyantikonet for at redigere klienten:

Ud over at ændre titlen på din klient, kan du lukke klienten permanent, og ligeledes generere en ny klient kode. Benyt Klient id og Klient kode (secret), som vist i sektionen herunder, til at generere et adgangstoken.

 

Generering af API-adgangstoken

For at generere et adgangstoken, foretages et HTTP POST request med Klient id og Klient kode, som oprettet i shoppens administration:

curl
     --request POST
     --data 'grant_type=client_credentials&client_id=[client-id]&client_secret=[client-secret]&scope='
     https://[tenant].api.mywebshop.io/oauth/token

  • [client-id] —Klient id, som oprettet i shoppens administration
  • [client-secret] —Klient kode, som oprettet i shoppens administration
  • [tenant] —Det shopnummer du ønsker forespørge imod, f.eks. shop99999

 

Foretag godkendte anmodninger

Efter klienten har modtaget et API-adgangstoken, er det nu muligt at lave godkendte requests til GraphQL API. Requests indeholder en header: Authorization: Bearer {access_token} hvor {access_token} byttes ud med det genererede adgangstoken.

Her er et eksempel på et request med adgangstoken:

curl
     -H 'Accept: application/json'
     -H 'Content-Type: application/json'
     -H "Authorization: Bearer [token]"
     --data-binary '{"query":"query{orders{data{id}}}","variables":{},"operationName":null}'
     https://[tenant].api.mywebshop.io/graphql