OAuth
Määritä OAuth-kulku
Käyttäjä tunnistautuu Wealth Readerissa, palaa redirect_uri-osoitteeseesi code-arvon kanssa, ja sinä vaihdat sen samaan JSONiin kuin iframe-callbackissa.
Käytä tätä polkua, jos iframea ei voi upottaa (natiivisovellus tai ohjauskulku). Jos verkkosovelluksesi voi isännöidä iframea, käytä sen sijaan iframe-frontendia.
Pikapolku
- Valtuuta domain arvolla
access_type=oauth. - Luo
nonce,statejacode_verifier. Laskechallenge_code. Koodaawr_confheksadesimaaliksi. Tallennanoncejacode_verifier. - Ohjaa käyttäjä osoitteeseen
https://oauth.wealthreader.com/oauth2/näillä parametreilla. - Vastaanota
GETredirect_uri-osoitteessasi parametreillanoncejacode. - Tee
POSTosoitteeseenhttps://oauth.wealthreader.com/token/ja saat pankin payloadin.
1. Valtuuta domain
domain-arvon on oltava sama URL, jota käytät redirect_uri- ja url_callback-osoitteena.
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'
Voit rekisteröidä domainin myös asiakasalueelta valitsemalla OAuth-integraation.
2. Luo challenge-arvot
Luo kolme satunnaista 41 merkin aakkosnumeerista merkkijonoa (A-Za-z0-9) ja muunna ne heksadesimaaliksi (bin2hex). Jokainen heksadesimaaliarvo on 82 merkkiä pitkä.
| Arvo | Miten se saadaan | Lähetetään |
|---|---|---|
redirect_uri |
Paluuosoitteesi, sama jonka valtuutit | query ja POST /token/ |
nonce |
41 merkkiä → hex | query; palautuu GET-pyynnössä |
state |
41 merkkiä → hex | query |
code_verifier |
41 merkkiä → hex | vain POST /token/ (ei query-merkkijonossa) |
challenge_code |
code_verifier-arvon SHA-256 (hex digest) |
query, nimellä challenge_code |
wr_conf |
Valitsimen konfiguraatio-JSON → hex | query |
wr_conf hyväksyy samat kentät kuin iframe-frontend. Esimerkki ennen heksadesimaalimuunnosta:
{
"operation_id": "op_a1b2c3d4e5f6",
"entities_to_display": [],
"wait_full_response": true
}
Saman JSONin heksadesimaali:
7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d
wr_conf-arvon muuntaminen heksadesimaaliksi ei luo nonce-, state- tai code_verifier-arvoja. Nuo kolme arvoa luodaan erikseen, ja ne on säilytettävä (nonce-avaimella) kunnes POST /token/ tehdään.
PHP-esimerkki, joka vastaa sisäisesti käyttämäämme:
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. Ohjaa käyttäjä
Rakenna kyselymerkkijono ja ohjaa käyttäjä. Esimerkki arvoista, jotka täsmäävät keskenään:
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
Käyttäjä näkee pankkivalitsimen, tunnistautuu, ja kun hän on valmis, Wealth Reader lähettää hänet takaisin redirect_uri-osoitteeseesi.
4. Vastaanota GET osoitteessa redirect_uri
https://example.com/oauth/success.php?nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573
&code=1234567890abcdef1234567890abcdef1234567890a
Käytä nonce-arvoa noutamaan vaiheessa 2 tallentamasi code_verifier. Jos nonce ei ole sinun luomasi, hylkää pyyntö.
5. Suorita challenge
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'
| Kenttä | Arvo |
|---|---|
grant_type |
authorization_code |
redirect_uri |
Täsmälleen sama kuin vaiheessa 3 |
code |
GET-pyynnöstä saatu arvo |
code_verifier |
Vaiheessa 2 luomasi heksadesimaaliarvo |
Jos arvot täsmäävät, vastaus on pankin JSON (sama skeema kuin iframe-callbackissa): success, payload ja statistics (operation_id, token, code).
Tallenna token ja code, jos päivität myöhemmin kutsulla POST https://api.wealthreader.com/entities/.
Esimerkkikoodi
On olemassa Java-esimerkki (JBang / Java 17), joka luo parametrit ja suorittaa challengen:
Jos tarvitset saman kulun toisella kielellä, kirjoita osoitteeseen support@wealthreader.com.