OAuth
Configureer de OAuth-flow
De gebruiker authenticeert zich bij Wealth Reader, keert terug naar uw redirect_uri met een code, en u wisselt die in voor dezelfde JSON als bij de iframe-callback.
Gebruik dit pad als u de iframe niet kunt insluiten (native app of een redirect-flow). Als uw webapp een iframe kan hosten, gebruik dan in plaats daarvan iframe frontend.
Snelpad
- Autoriseer het domein met
access_type=oauth. - Genereer
nonce,stateencode_verifier. Berekenchallenge_code. Codeerwr_confals hexadecimaal. Slanonceencode_verifierop. - Stuur de gebruiker door naar
https://oauth.wealthreader.com/oauth2/met die parameters. - Ontvang een
GETop uwredirect_urimetnonceencode. - Doe een
POSTnaarhttps://oauth.wealthreader.com/token/en ontvang de bankpayload.
1. Het domein autoriseren
domain moet dezelfde URL zijn die u als redirect_uri en als url_callback gebruikt.
curl --location 'https://api.wealthreader.com/domains/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'method=add' \
--data-urlencode 'api_key=YOUR_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'
U kunt het domein ook registreren vanuit de klantomgeving door OAuth-integratie te kiezen.
2. De challenge-waarden genereren
Genereer drie willekeurige alfanumerieke tekenreeksen van 41 tekens (A-Za-z0-9) en zet ze om naar hexadecimaal (bin2hex). Elke hexadecimale waarde is 82 tekens lang.
| Waarde | Hoe u die verkrijgt | Verzonden in |
|---|---|---|
redirect_uri |
Uw terugkeer-URL, dezelfde die u hebt geautoriseerd | query en POST /token/ |
nonce |
41 tekens → hex | query; komt terug in de GET |
state |
41 tekens → hex | query |
code_verifier |
41 tekens → hex | alleen POST /token/ (niet in de query) |
challenge_code |
SHA-256 van code_verifier (hex-digest) |
query, als challenge_code |
wr_conf |
JSON van de kiezerconfiguratie → hex | query |
wr_conf accepteert dezelfde velden als iframe frontend. Voorbeeld vóór conversie naar hexadecimaal:
{
"operation_id": "op_a1b2c3d4e5f6",
"entities_to_display": [],
"wait_full_response": true
}
Hexadecimaal van die JSON:
7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d
wr_conf naar hexadecimaal omzetten genereert niet nonce, state of code_verifier. Die drie waarden worden afzonderlijk aangemaakt en u moet ze bewaren (met nonce als sleutel) tot de POST /token/.
PHP-voorbeeld, gelijkwaardig aan wat we intern gebruiken:
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. De gebruiker doorsturen
Bouw de query en stuur door. Voorbeeld met waarden die bij elkaar horen:
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
De gebruiker ziet de bankkiezer, authenticert zich, en wanneer die klaar is, stuurt Wealth Reader de gebruiker terug naar uw redirect_uri.
4. De GET op redirect_uri ontvangen
https://example.com/oauth/success.php?nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573
&code=1234567890abcdef1234567890abcdef1234567890a
Gebruik de nonce om de code_verifier terug te vinden die u in stap 2 hebt opgeslagen. Als de nonce niet van u afkomstig is, verwerp de request.
5. De challenge afronden
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'
| Veld | Waarde |
|---|---|
grant_type |
authorization_code |
redirect_uri |
Precies dezelfde als in stap 3 |
code |
Degene uit de GET |
code_verifier |
De hexadecimale waarde die u in stap 2 hebt gegenereerd |
Als de waarden overeenkomen, is de response de bank-JSON (hetzelfde schema als de iframe-callback): success, payload en statistics (operation_id, token, code).
Sla token en code op als u later wilt verversen met POST https://api.wealthreader.com/entities/.
Voorbeeldcode
Er is een Java-voorbeeld (JBang / Java 17) dat de parameters genereert en de challenge afrondt:
Java-voorbeeld downloaden (ZIP)
Als u dezelfde flow in een andere taal nodig heeft, schrijf naar support@wealthreader.com.