OAuth
Richte den OAuth-Fluss ein
Der Nutzer authentifiziert sich bei Wealth Reader, kehrt mit a code zu dir redirect_uri zurück und du lösst es für dasselbe JSON wie den iframe-Callback ein.
Nutze diesen Pfad, wenn du das iframe nicht einbetten kannst (native App oder ein Redirect-Flow). Wenn deine Webanwendung einen iframe montieren kann, nutze stattdessen [iframe-Frontend].](/docs/de/iframe-integration-1-von-2-frontend/)
Fast Track
- Autorisieren Sie den Bereich mit
access_type=oauth. - Erzeugen
nonce,stateundcode_verifier. Berechnenchallenge_code. Kodiertwr_confin hexadezimal. Guardanonceundcode_verifier. - Den Benutzer mit diesen Parametern
https://oauth.wealthreader.com/oauth2/umzuleiten. - Empfangen
GETSie in Ihremredirect_uriConnonceundcode. - Machen
POSTSie das undhttps://oauth.wealthreader.com/token/holen Sie die Nutzlast der Bank.
1. Autorisieren Sie die Domäne
Es domain muss dieselbe URL sein, die du als redirect_uri und als url_callbackverwenden wirst.
curl --location 'https://api.wealthreader.com/domains/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'method=add' \
--data-urlencode 'api_key=TU_API_KEY' \
--data-urlencode 'domain=https://example.com/oauth/success.php' \
--data-urlencode 'url_callback=https://example.com/oauth/success.php' \
--data-urlencode 'access_type=oauth' \
--data-urlencode 'tokenize=1'
Du kannst die Domain auch aus dem Client-Bereich] registrieren, indem du OAuth-Integration wählst.
2. Erzeugung der Werte der Herausforderung
Erzeugen Sie drei zufällige Zeichenketten von 41 alphanumerischen Zeichen (A-Za-z0-9) und konvertieren Sie sie in hexadezimal (bin2hex). Jeder hexadezimale Wert hat 82 Zeichen.
| Wert | Wie bekommt man es | Schiffe in |
|---|---|---|
redirect_uri |
Ihre Rücksendungs-URL, dieselbe, die Sie autorisiert haben | Anfrage und POST /token/ |
nonce |
41 Zeichen → Hex | Abfrage; zurück in der GET |
state |
41 Zeichen → Hex | Abfrage |
code_verifier |
41 Zeichen → Hex | solo POST /token/ (nicht in der Abfrage) |
challenge_code |
SHA-256 aus code_verifier (Hex-Digest) |
Abfrage, wie challenge_code |
wr_conf |
Hex → Selector-Konfiguration JSON | Anfrage |
wr_conf Es unterstützt die gleichen Felder wie das iframe-Frontend. Beispiel vor dem Wechsel auf hexadezimal:
{
"operation_id": "op_a1b2c3d4e5f6",
"entities_to_display": [],
"wait_full_response": true
}
Hexadezimal dieses JSON:
7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d
Die Umwandlung wr_conf in hexadezimal erzeugt nicht nonce, state noch code_verifier. Diese drei Werte werden separat erstellt und man muss sie (assoziiert mit ) noncebeibehalten, bis die POST /token/.
Beispiel in PHP, äquivalent zu dem, was wir intern verwenden:
function randomAlnum($length)
{
$alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$value = '';
for ($i = 0; $i < $length; $i++) {
$value .= $alphabet[random_int(0, strlen($alphabet) - 1)];
}
return $value;
}
$nonce = bin2hex(randomAlnum(41));
$state = bin2hex(randomAlnum(41));
$code_verifier = bin2hex(randomAlnum(41));
$challenge_code = hash('sha256', $code_verifier);
$wr_conf = bin2hex(json_encode([
'operation_id' => 'op_a1b2c3d4e5f6',
'entities_to_display' => [],
'wait_full_response' => true,
]));
3. Lenken Sie den Benutzer um
Stelle die Abfrage auf und leite weiter. Beispiel mit konsistenten Werten:
https://oauth.wealthreader.com/oauth2/?challenge_code=c725133644f703a5f069a09583fa981eb5b8820071a4450f8d47ff8b1c6a879a
&code_challenge_method=S256
&redirect_uri=https://example.com/oauth/success.php
&response_type=code
&state=73684148464b3778795873626d724e62734749724336685a7a687854336c317934524f516831316a45
&nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573
&wr_conf=7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d
Der Nutzer sieht den Bankselektor, authentifiziert sich, und wenn das abgeschlossen ist, gibt Wealth Reader ihn an Ihr redirect_urizurück.
4. Erhalten Sie das GET in `redirect_uri````
https://example.com/oauth/success.php?nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573 &code=1234567890abcdef1234567890abcdef1234567890a
Benutze die, um `nonce` die `code_verifier` gespeicherte Figur in Schritt 2 wiederherzustellen. Wenn der Nicht-Herausgeber`nonce`, lehnen Sie den Antrag ab.
## 5. Erledige die Herausforderung
```bash
curl --location --request POST 'https://oauth.wealthreader.com/token/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'redirect_uri=https://example.com/oauth/success.php' \
--data-urlencode 'code=1234567890abcdef1234567890abcdef1234567890a' \
--data-urlencode 'code_verifier=6634413364504337675230375a624671644f644d42414241303037737374684f494877477649723433'
| Feld | Wert | |
|---|---|---|
grant_type authorization_code |
||
redirect_uri |
Genau wie Schritt 3 | |
code |
Die von | GET |
code_verifier |
Das Hexadezimal, das du in Schritt 2 erzeugt hast |
Wenn die Werte übereinstimmen, ist die Antwort das JSON der Bank (dasselbe Schema wie der iframe-Callback]: success, payload und statistics (operation_id, token, code).
Speichere token und code wenn später, erneuerst du mit POST https://api.wealthreader.com/entities/.
Beispielcode
Es gibt ein Beispiel in Java (JBang/Java 17), das die Parameter generiert und die Herausforderung abschließt:
Java-Beispiel herunterladen (ZIP)
Wenn Sie denselben Fluss in einer anderen Sprache benötigen, schreiben Sie uns unter support@wealthreader.com. /support@wealthreader.com