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
⬇ OpenAPI-3.2.1-Spec herunterladen (JSON) ⬇ KI/LLM-Referenz herunterladen (.md)
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.
GET POST
GET https://{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 JavaScript Python PHP Node.js Java C# Go
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))
}
POST https://{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 JavaScript Python PHP Node.js Java C# Go
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
⬇ OpenAPI-3.2.1-Spec herunterladen (JSON) ⬇ KI/LLM-Referenz herunterladen (.md)
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.
GET POST
GET https://{SERVER_ADDRESS}/oauth/access_token/?scope =refresh_token&access_token ={ACCESS_TOKEN}&refresh_token ={REFRESH_TOKEN}
Codebeispiele
Einen zuvor ausgestellten Token aktualisieren
cURL JavaScript Python PHP Node.js Java C# Go
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))
}
POST https://{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 JavaScript Python PHP Node.js Java C# Go
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