Wie authentifiziere ich mich am DistributionGate mit einer nativen Software?

Sie haben die Verbindungsdaten für ein DistributionGate abgerufen; jetzt wollen Sie Ihrem Nutzer die Möglichkeit geben, sich beim Händler anzumelden, damit Baumaterialien mit Preis und Verfügbarkeit in Ihrer Software angezeigt werden können.

Mit dem vorherigen Schritt haben Sie die Liste der verbundenen DistributionGates abgerufen. Ihr Nutzer kann einen der Händler auswählen und muss sich nun an dessen DistributionGate authentifzieren. Das sind die Schritte:

  1. Ihre Software fragt die Login-Daten Ihres Nutzers für den gewählten Händler ab.
  2. Ihre Software verwendet die Verbindungsinformationen des Authentifizierungsservers aus dem vorherigen Schritt und die Login-Daten des Nutzers, um sich zu authentifizieren und erhält ein Token zurück.

Native App authentication

Login-Daten für gewählten Händler

Für die Kommunikation mit dem DistributionGate des Händlers brauchen Sie bzw. Ihr Nutzer ein Benutzerkonto. Wir stellen Ihnen für die Implementierung einen Account bei einem Demo-Händler zur Verfügung, den Sie hier verwenden können.

  • Aus dem vorherigen Schritt bekommen Sie die URL, Client ID und Client Secret.
    • URL: Die URL des Endpunkts könnte zum Beispiel so aussehen: https://exampledistributor.eu.auth0.com/oauth/token
    • Client ID und Client Secret sind jeweils ein längerer alphanumerischer Code.
  • Nutzername und Passwort gibt Ihr Nutzer ein oder Sie verwenden den von uns bereitgestellten Demo-Nutzer.

So sieht der Request aus. Die spitzen Klammern sind Platzhalter für Informationen, die Sie einsetzen müssen.

curl --request POST \
--url <Base URL of Auth0 endpoint for token request for this DistributionGate>/oauth/token>, \
--header 'content-type: application/x-www-form-urlencoded' \
--data grant_type=password \
--data client_id=<client_id distributor>\
--data client_secret=<client_secret for distributor> \
--data 'username=<user name>' \
--data 'password=<password>' \
--data 'scope=read:order read:products read:shoppingCart write:order write:shoppingCart ' \
--data audience=http://mdg.promaterial.com/api

Antwort:

{
"access_token": "<JWT token>",
"scope": "read:order read:products read:shoppingCart write:order write:shoppingCart openid",
"expires_in": 86400,
"token_type": "Bearer"
}

Das nun erhaltene Token verwenden Sie zur Kommunikation mit dem DistributionGate.

  • Allgemeine Informationen zur GraphQL API finden Sie hier
  • Konkrete Beispiele finden Sie hier