OAuth
Ρύθμιση της ροής OAuth
Ο χρήστης πραγματοποιεί έλεγχο ταυτότητας στο Wealth Reader, επιστρέφει στο δικό σας redirect_uri με ένα code και το εξαργυρώνετε για το ίδιο JSON με την επανάκληση iframe.
Χρησιμοποιήστε αυτήν τη διαδρομή εάν δεν μπορείτε να ενσωματώσετε το iframe (εγγενής εφαρμογή ή ροή ανακατεύθυνσης). Εάν η εφαρμογή web σας μπορεί να προσαρτήσει ένα iframe, χρησιμοποιήστε το [iframe frontend].](/docs/el/ensomatosi-iframe-1-apo-2-frontend/)
Γρήγορη διαδρομή
- Εξουσιοδοτήστε τον τομέα με
access_type=oauth. - Δημιουργήστε
nonce,stateκαιcode_verifier. Υπολογίστεchallenge_code. Κωδικοποιείwr_confσε δεκαεξαδικό. Guardanonceκαιcode_verifier. - Ανακατευθύνετε τον χρήστη
https://oauth.wealthreader.com/oauth2/σε με αυτές τις παραμέτρους. - Λάβετε
GETστην απάτηnonceσαςredirect_uriκαιcode. - Κάντε
POSTκαιhttps://oauth.wealthreader.com/token/λάβετε το ωφέλιμο φορτίο της τράπεζας.
1. Εξουσιοδότηση του τομέα
Πρέπει domain να είναι η ίδια διεύθυνση URL που θα χρησιμοποιήσετε ως redirect_uri και ως 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'
Μπορείτε επίσης να κατοχυρώσετε τον τομέα από την περιοχή πελάτη] επιλέγοντας ενσωμάτωση OAuth.
2. Δημιουργώντας τις αξίες της πρόκλησης
Δημιουργήστε τρεις τυχαίες συμβολοσειρές 41 αλφαριθμητικών χαρακτήρων (A-Za-z0-9) και μετατρέψτε τις σε δεκαεξαδικές (bin2hex). Κάθε δεκαεξαδική τιμή έχει 82 χαρακτήρες.
| Αξία | Πώς θα το αποκτήσετε | Αποστολές |
|---|---|---|
redirect_uri |
Η διεύθυνση URL επιστροφής, η ίδια που εξουσιοδοτήσατε | query και POST /token/ |
nonce |
41 χαρακτήρες → εξάγωνο | ερώτημα; πίσω στο GET |
state |
41 χαρακτήρες → δεκαεξαδικό | ερώτημα |
code_verifier |
41 χαρακτήρες → δεκαεξαδικό | σόλο POST /token/ (όχι στο ερώτημα) |
challenge_code |
SHA-256 από code_verifier (δεκαεξαδική σύνοψη) |
ερώτημα, όπως challenge_code |
wr_conf |
Διαμόρφωση επιλογέα δεκαεξαδικού → JSON | ερώτημα |
wr_conf Υποστηρίζει τα ίδια πεδία με το iframe frontend. Παράδειγμα πριν τη μετάβαση σε δεκαεξαδικό:
{
"operation_id": "op_a1b2c3d4e5f6",
"entities_to_display": [],
"wait_full_response": true
}
Δεκαεξαδικό αυτού του JSON:
7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d
Η μετατροπή wr_conf σε δεκαεξαδικό δεν δημιουργεί nonce, state ούτε code_verifier. Αυτές οι τρεις τιμές δημιουργούνται ξεχωριστά και πρέπει να τις διατηρήσετε (που σχετίζονται με το nonce) μέχρι το POST /token/.
Παράδειγμα στην PHP, ισοδύναμο με αυτό που χρησιμοποιούμε εσωτερικά:
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. Ανακατευθύνετε τον χρήστη
Δημιουργήστε το ερώτημα και ανακατευθύνετε. Παράδειγμα με σταθερές τιμές:
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
Ο χρήστης βλέπει τον επιλογέα τράπεζας, πραγματοποιεί έλεγχο ταυτότητας και όταν τελειώσει, το Wealth Reader τον επιστρέφει στο αρχείο .redirect_uri
4. Λάβετε το GET in `redirect_uri````
https://example.com/oauth/success.php?nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573 &code=1234567890abcdef1234567890abcdef1234567890a
Χρησιμοποιήστε το για να `nonce` ανακτήσετε αυτό `code_verifier` που αποθηκεύσατε στο βήμα 2. Εάν ο `nonce` μη εκδότης, απορρίψτε το αίτημα.
## 5. Ολοκληρώστε την πρόκληση
```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'
| Πεδίο | Αξία | |
|---|---|---|
grant_type authorization_code |
||
redirect_uri |
Ακριβώς το ίδιο με το βήμα 3 | |
code |
Αυτό του | GET |
code_verifier |
Το δεκαεξαδικό που δημιουργήσατε στο βήμα 2 |
Εάν οι τιμές ταιριάζουν, η απόκριση είναι το JSON της τράπεζας (ίδιο σχήμα με το iframe callback]: success, payload και statistics (operation_id, token, code).
Αποθηκεύστε token και code αν αργότερα πρόκειται να ανανεώσετε με POST https://api.wealthreader.com/entities/.
Δείγμα κώδικα
Υπάρχει ένα παράδειγμα στην Java (JBang/Java 17) που δημιουργεί τις παραμέτρους και ολοκληρώνει την πρόκληση:
Εάν χρειάζεστε την ίδια ροή σε άλλη γλώσσα, γράψτε μας στο support@wealthreader.com. /support@wealthreader.com