OAuth
Installer le flux OAuth
L’utilisateur s’authentifie auprès de Wealth Reader, revient vers vous redirect_uri avec un code et vous échangez le fichier JSON pour le même JSON que le callback iframe.
Utilisez ce chemin si vous ne pouvez pas intégrer l’iframe (application native ou flux de redirection). Si votre application web peut monter un iframe, utilisez plutôt frontend iframe].
Voie rapide
- Autoriser le domaine avec
access_type=oauth. - Générer
nonce,stateetcode_verifier. Calculerchallenge_code. Encodewr_confen hexadécimal. Guardanonceetcode_verifier. - Rediriger l’utilisateur vers
https://oauth.wealthreader.com/oauth2/avec ces paramètres. - Recevez
GETvotreredirect_uriarnaquenonceetcode. - Faire
POSTethttps://oauth.wealthreader.com/token/récupérer la charge utile de la banque.
1. Autoriser le domaine
Il domain doit s’agir de la même URL que vous utiliserez comme redirect_uri et comme url_callback.
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'
Vous pouvez également enregistrer le domaine depuis la zone client ] en choisissant l’intégration OAuth.
2. Générer les valeurs du défi
Générez trois chaînes aléatoires de 41 caractères alphanumériques (A-Za-z0-9) et convertissez-les en hexadécimal (bin2hex). Chaque valeur hexadécimale comporte 82 caractères.
| Valeur | Comment l’obtenir | Navires dans |
|---|---|---|
redirect_uri |
Votre URL de retour, la même que vous avez autorisée | requête et POST /token/ |
nonce |
41 caractères → hexagone | requête ; retour dans le GET |
state |
41 caractères → hexagon | requête |
code_verifier |
41 personnages → hexagone | solo POST /token/ (pas dans la requête) |
challenge_code |
SHA-256 depuis code_verifier (hex digest) |
requête, comme challenge_code |
wr_conf |
Configuration du sélecteur hexadécimal → JSON | Requête |
wr_conf Il prend en charge les mêmes champs que le frontend](/docs/fr/integration-iframe-1-sur-2-frontend/) [iframe. Exemple avant de passer à l’hexadécimal :
{
"operation_id": "op_a1b2c3d4e5f6",
"entities_to_display": [],
"wait_full_response": true
}
Hexadécimal de ce JSON :
7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d
Convertir wr_conf en hexadécimal ne génère pas nonce, state ni code_verifier. Ces trois valeurs sont créées séparément et vous devez les faire persister (associées à ) noncejusqu’à ce que le POST /token/.
Exemple en PHP, équivalent à celui que nous utilisons en interne :
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. Rediriger l’utilisateur
Construis la requête et redirige. Exemple avec des valeurs cohérentes :
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
L’utilisateur voit le sélecteur bancaire, s’authentifie, et une fois terminé, Wealth Reader le renvoie à votre redirect_uri.
4. Recevez le GET in redirect_uri
https://example.com/oauth/success.php?nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573
&code=1234567890abcdef1234567890abcdef1234567890a
Utilisez le pour nonce récupérer celui code_verifier que vous avez sauvegardé à l’étape 2. Si c’est l’émetteur nonce non émetteur, rejetez la demande.
5. Terminez le défi
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'
| Champ | Valeur | |
|---|---|---|
grant_type authorization_code |
||
redirect_uri |
Exactement comme l’étape 3 | |
code |
Celui de | GET |
code_verifier |
L’hexadécimal que vous avez généré à l’étape 2 |
Si les valeurs correspondent, la réponse est le JSON de la banque (même schéma que le callback iframe] : success, payload et statistics (operation_id, token, code).
Sauvegarder token et code si plus tard, vous comptez rafraîchir avec POST https://api.wealthreader.com/entities/.
Code d’exemple
Il existe un exemple en Java (JBang/Java 17) qui génère les paramètres et complète le défi :
[Télécharger l’exemple Java (ZIP)]](https://drive.google.com/file/d/1nyWASQVkhFHAgTTeqq0HJe70fucg8D2E/view?usp=sharing)
Si vous avez besoin du même flux dans une autre langue, écrivez-nous à support@wealthreader.com. /support@wealthreader.com