OAuth2-Authentifizierung

Support DQE
Support DQE
  • Aktualisiert
Access Token – OAuth2 API

Verwenden Sie OAuth2, um vor dem Aufruf der DQE-APIs ein temporäres Bearer-Token zu generieren. Der Ablauf verwendet Ihren Lizenzcode, Ihr Client Secret und den angeforderten Scope, um ein Zugriffstoken mit begrenzter Gültigkeitsdauer zurückzugeben.

access_token

Anfrage

Sowohl GET als auch POST werden unterstützt.

{SERVER_ADDRESS} und {LICENCE_CODE} werden von DQE bei der Kontoerstellung bereitgestellt. Wenden Sie sich an Ihren DQE-Kundenbetreuer, um diese Zugangsdaten zu erhalten.
GEThttps://{SERVER_ADDRESS}/oauth/access_token/?client_secret={CLIENT_SECRET}&scope={SCOPE}&client_id={LICENCE_CODE}

Codebeispiele

Token für den Scope der DQE Address API anfordern

curl "https://{SERVER_ADDRESS}/oauth/access_token/?client_secret=abcd&scope=client_address&client_id={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/oauth/access_token/?" + new URLSearchParams({ client_secret: "abcd", scope: "client_address", client_id: "{LICENCE_CODE}" })) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.get( "https://{SERVER_ADDRESS}/oauth/access_token/", params={ "client_secret": "abcd", "scope": "client_address", "client_id": "{LICENCE_CODE}", }, ) print(response.json())
<?php $params = http_build_query([ 'client_secret' => 'abcd', 'scope' => 'client_address', 'client_id' => '{LICENCE_CODE}', ]); $ch = curl_init("https://{SERVER_ADDRESS}/oauth/access_token/?{$params}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); axios.get('https://{SERVER_ADDRESS}/oauth/access_token/', { params: { client_secret: 'abcd', scope: 'client_address', client_id: '{LICENCE_CODE}' } }) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String url = "https://{SERVER_ADDRESS}/oauth/access_token/" + "?client_secret=abcd&scope=client_address&client_id={LICENCE_CODE}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var url = "https://{SERVER_ADDRESS}/oauth/access_token/" + "?client_secret=abcd&scope=client_address&client_id={LICENCE_CODE}"; var response = await client.GetAsync(url); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" ) func main() { url := "https://{SERVER_ADDRESS}/oauth/access_token/" + "?client_secret=abcd&scope=client_address&client_id={LICENCE_CODE}" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }
POSThttps://{SERVER_ADDRESS}/oauth/access_token/

Senden Sie alle Parameter im Request-Body im Format Content-Type: application/x-www-form-urlencoded. Die Serveradresse bleibt in der URL.

Codebeispiele

Token für den Scope der DQE Address API anfordern

curl -X POST "https://{SERVER_ADDRESS}/oauth/access_token/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "client_id={LICENCE_CODE}" \ -d "client_secret=abcd" \ -d "scope=client_address"
fetch("https://{SERVER_ADDRESS}/oauth/access_token/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ client_id: "{LICENCE_CODE}", client_secret: "abcd", scope: "client_address" }) }) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.post( "https://{SERVER_ADDRESS}/oauth/access_token/", data={ "client_id": "{LICENCE_CODE}", "client_secret": "abcd", "scope": "client_address", }, ) print(response.json())
<?php $ch = curl_init("https://{SERVER_ADDRESS}/oauth/access_token/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'client_id' => '{LICENCE_CODE}', 'client_secret' => 'abcd', 'scope' => 'client_address', ])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); const qs = require('querystring'); axios.post('https://{SERVER_ADDRESS}/oauth/access_token/', qs.stringify({ client_id: '{LICENCE_CODE}', client_secret: 'abcd', scope: 'client_address' })) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String form = "client_id={LICENCE_CODE}&client_secret=abcd&scope=client_address"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{SERVER_ADDRESS}/oauth/access_token/")) .header("Content-Type", "application/x-www-form-urlencoded") .POST(HttpRequest.BodyPublishers.ofString(form)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var form = new Dictionary<string, string> { ["client_id"] = "{LICENCE_CODE}", ["client_secret"] = "abcd", ["scope"] = "client_address" }; var response = await client.PostAsync( "https://{SERVER_ADDRESS}/oauth/access_token/", new FormUrlEncodedContent(form)); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" "net/url" ) func main() { form := url.Values{} form.Set("client_id", "{LICENCE_CODE}") form.Set("client_secret", "abcd") form.Set("scope", "client_address") resp, err := http.PostForm("https://{SERVER_ADDRESS}/oauth/access_token/", form) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }

Parameter

Parameter Beschreibung Pflicht / Opt.
client_id Ihnen als Lizenzcode zugewiesene Nummer. Erforderlich
client_secret Von DQE Software bereitgestellte Passphrase. Erforderlich
scope

Definiert den angeforderten Autorisierungs-Scope. Verfügbare Werte umfassen:

  • client_address — DQE Address APIs
  • client_phone — DQE Phone APIs
  • client_email — DQE Email APIs
  • client_idcheck — DQE ID Check APIs
  • client_general — mehrere DQE-APIs
  • client_b2b — DQE B2B APIs
  • client_civility — DQE Name APIs
Erforderlich

Antwort

Wenn die Authentifizierung erfolgreich ist, gibt die API ein JSON-Dictionary mit den folgenden Schlüsseln zurück.

Schlüssel Beschreibung Typ
access_token Temporäres Token zum Aufrufen des Dienstes. String
token_type Bearer — autorisierter Tokentyp. String
expires_in Gültigkeitsdauer des Tokens, in Sekunden. String
refresh_token Token zur Verlängerung Ihrer Sitzung. String

Antwortbeispiel

Beispiel für eine Token-Antwort
{ "access_token": "TK948869a6f873adb622enhoaGeVY2iRaptqlmpplGeWZA", "token_type": "Bearer", "expires_in": "300", "refresh_token": "*TK9bdd05f8e9d3c905834bdeqaUlGFll2iRaplll29mZmtkZQ" }

Fehler

Fehlertyp Beispielanfrage Antworttyp
Fehlender Parameter client_id https://{SERVER_ADDRESS}/oauth/access_token/?client_secret=abcd&scope=client_address 400 Invalid Request
Leerer Parameter client_id https://{SERVER_ADDRESS}/oauth/access_token/?client_secret=abcd&scope=client_address&client_id= 400 Invalid Request
Falscher client_id (abgelaufen, außerhalb des Scopes oder nicht vorhanden) https://{SERVER_ADDRESS}/oauth/access_token/?client_secret=abcd&scope=client_address&client_id={INCORRECT_LICENCE_CODE} 400 Invalid Client
client_id autorisiert den angeforderten scope nicht https://{SERVER_ADDRESS}/oauth/access_token/?client_secret=abcd&scope=client_address&client_id={LICENCE_CODE_NOT_AUTHORIZED} 400 Unauthorized Client
Unbekannter Wert für den Parameter scope https://{SERVER_ADDRESS}/oauth/access_token/?client_secret=abcd&scope=client&client_id={LICENCE_CODE} 400 Unsupported Grant Type
Fehlender oder leerer Parameter client_secret https://{SERVER_ADDRESS}/oauth/access_token/?scope=client_address&client_id={LICENCE_CODE}
https://{SERVER_ADDRESS}/oauth/access_token/?client_secret=&scope=client_address&client_id={LICENCE_CODE}
400 Invalid Request
Fehlender oder leerer Parameter scope https://{SERVER_ADDRESS}/oauth/access_token/?client_secret=abcd&client_id={LICENCE_CODE}
https://{SERVER_ADDRESS}/oauth/access_token/?client_secret=abcd&scope=&client_id={LICENCE_CODE}
400 Invalid Request
Tippfehler im Parameter https://{SERVER_ADDRESS}/oauth/access_token/?client_scret=abcd&scope=client_address&client_id={LICENCE_CODE} 500 Internal Server Error

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpunkt live in Ihrem Browser zu testen.

Konsole öffnen
Refresh Token – OAuth2 API

Verwenden Sie diesen Endpunkt, um einen neuen Access Token zu erhalten, ohne den gesamten Authentifizierungsablauf zu wiederholen. Übergeben Sie den access_token und refresh_token, die Sie zuvor erhalten haben — kein Lizenzcode oder Client Secret erforderlich.

refresh_token

Anfrage

Sowohl GET als auch POST werden unterstützt.

Hier sind kein Lizenzcode und kein Client Secret erforderlich. Die Aktualisierung erneuert beide Token: Die Antwort liefert einen brandneuen access_token UND einen brandneuen refresh_token — das vorherige Paar wird sofort ungültig, speichern Sie daher die neuen Werte.
GEThttps://{SERVER_ADDRESS}/oauth/access_token/?scope=refresh_token&access_token={ACCESS_TOKEN}&refresh_token={REFRESH_TOKEN}

Codebeispiele

Einen zuvor ausgestellten Token aktualisieren

curl "https://{SERVER_ADDRESS}/oauth/access_token/?scope=refresh_token&access_token={ACCESS_TOKEN}&refresh_token={REFRESH_TOKEN}"
fetch("https://{SERVER_ADDRESS}/oauth/access_token/?" + new URLSearchParams({ scope: "refresh_token", access_token: "{ACCESS_TOKEN}", refresh_token: "{REFRESH_TOKEN}" })) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.get( "https://{SERVER_ADDRESS}/oauth/access_token/", params={ "scope": "refresh_token", "access_token": "{ACCESS_TOKEN}", "refresh_token": "{REFRESH_TOKEN}", }, ) print(response.json())
<?php $params = http_build_query([ 'scope' => 'refresh_token', 'access_token' => '{ACCESS_TOKEN}', 'refresh_token' => '{REFRESH_TOKEN}', ]); $ch = curl_init("https://{SERVER_ADDRESS}/oauth/access_token/?{$params}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); axios.get('https://{SERVER_ADDRESS}/oauth/access_token/', { params: { scope: 'refresh_token', access_token: '{ACCESS_TOKEN}', refresh_token: '{REFRESH_TOKEN}' } }) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String url = "https://{SERVER_ADDRESS}/oauth/access_token/" + "?scope=refresh_token&access_token={ACCESS_TOKEN}&refresh_token={REFRESH_TOKEN}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var url = "https://{SERVER_ADDRESS}/oauth/access_token/" + "?scope=refresh_token&access_token={ACCESS_TOKEN}&refresh_token={REFRESH_TOKEN}"; var response = await client.GetAsync(url); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" ) func main() { url := "https://{SERVER_ADDRESS}/oauth/access_token/" + "?scope=refresh_token&access_token={ACCESS_TOKEN}&refresh_token={REFRESH_TOKEN}" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }
POSThttps://{SERVER_ADDRESS}/oauth/access_token/

Senden Sie alle Parameter im Request-Body im Format Content-Type: application/x-www-form-urlencoded. Die Serveradresse bleibt in der URL.

Codebeispiele

Einen zuvor ausgestellten Token aktualisieren

curl -X POST "https://{SERVER_ADDRESS}/oauth/access_token/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "scope=refresh_token" \ -d "access_token={ACCESS_TOKEN}" \ -d "refresh_token={REFRESH_TOKEN}"
fetch("https://{SERVER_ADDRESS}/oauth/access_token/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ scope: "refresh_token", access_token: "{ACCESS_TOKEN}", refresh_token: "{REFRESH_TOKEN}" }) }) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.post( "https://{SERVER_ADDRESS}/oauth/access_token/", data={ "scope": "refresh_token", "access_token": "{ACCESS_TOKEN}", "refresh_token": "{REFRESH_TOKEN}", }, ) print(response.json())
<?php $ch = curl_init("https://{SERVER_ADDRESS}/oauth/access_token/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'scope' => 'refresh_token', 'access_token' => '{ACCESS_TOKEN}', 'refresh_token' => '{REFRESH_TOKEN}', ])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); const qs = require('querystring'); axios.post('https://{SERVER_ADDRESS}/oauth/access_token/', qs.stringify({ scope: 'refresh_token', access_token: '{ACCESS_TOKEN}', refresh_token: '{REFRESH_TOKEN}' })) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String form = "scope=refresh_token&access_token={ACCESS_TOKEN}&refresh_token={REFRESH_TOKEN}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{SERVER_ADDRESS}/oauth/access_token/")) .header("Content-Type", "application/x-www-form-urlencoded") .POST(HttpRequest.BodyPublishers.ofString(form)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var form = new Dictionary<string, string> { ["scope"] = "refresh_token", ["access_token"] = "{ACCESS_TOKEN}", ["refresh_token"] = "{REFRESH_TOKEN}" }; var response = await client.PostAsync( "https://{SERVER_ADDRESS}/oauth/access_token/", new FormUrlEncodedContent(form)); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" "net/url" ) func main() { form := url.Values{} form.Set("scope", "refresh_token") form.Set("access_token", "{ACCESS_TOKEN}") form.Set("refresh_token", "{REFRESH_TOKEN}") resp, err := http.PostForm("https://{SERVER_ADDRESS}/oauth/access_token/", form) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }

Parameter

Parameter Beschreibung Pflicht / Opt.
scope Muss den literalen Wert refresh_token haben.
Fester Wert: refresh_token
Erforderlich
access_token Der Access Token, der zuvor vom Access-Token-Endpunkt zurückgegeben wurde. Erforderlich
refresh_token Der Refresh Token, der zuvor vom Access-Token-Endpunkt zurückgegeben wurde. Erforderlich

Antwort

Wenn die Aktualisierung erfolgreich ist, gibt die API dieselbe JSON-Struktur wie der Access-Token-Endpunkt zurück — mit einem brandneuen Tokenpaar.

Schlüssel Beschreibung Typ
access_token Neues temporäres Token zum Aufrufen des Dienstes. String
token_type Bearer — autorisierter Tokentyp. String
expires_in Gültigkeitsdauer des Tokens, in Sekunden. String
refresh_token Neues Refresh Token — verwenden Sie dieses für die nächste Aktualisierung, das vorherige ist nicht mehr gültig. String

Antwortbeispiel

Beispiel für eine aktualisierte Token-Antwort
{ "access_token": "TK948869a6f873adb622enhoaGeVY2iRaptqlmpplGeWZA", "token_type": "Bearer", "expires_in": "300", "refresh_token": "*TK9bdd05f8e9d3c905834bdeqaUlGFll2iRaplll29mZmtkZQ" }

Fehler

Fehlertyp Beispielanfrage Antworttyp
Fehlender, leerer oder ungültiger Parameter scope, access_token oder refresh_token https://{SERVER_ADDRESS}/oauth/access_token/?scope=refresh_token&access_token=&refresh_token={REFRESH_TOKEN} 400 Invalid Request
access_token oder refresh_token abgelaufen oder nicht mehr gültig https://{SERVER_ADDRESS}/oauth/access_token/?scope=refresh_token&access_token={EXPIRED_TOKEN}&refresh_token={REFRESH_TOKEN} 401 Unauthorized
Tippfehler im Parameter oder unerwartetes Serverproblem https://{SERVER_ADDRESS}/oauth/access_token/?scpoe=refresh_token&access_token={ACCESS_TOKEN}&refresh_token={REFRESH_TOKEN} 500 Internal Server Error

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpunkt live in Ihrem Browser zu testen.

Konsole öffnen

Siehe auch

Verknüpfung mit

War dieser Beitrag hilfreich?

0 von 0 fanden dies hilfreich