Μετάβαση στην πλοήγηση

Trading Widget Έλεγχος ταυτότητας

Χρησιμοποιήστε διακριτικό συνεργάτη για νέες ενσωματωμένες συναλλαγές SSO.

Προβολή ως Markdown

Προτεινόμενη λειτουργία: διακριτικό συνεργάτη

Partner-token αποφεύγει να τοποθετεί σύντομα διακριτικά σε URL και διατηρεί το apiSecret στο backend του συνεργάτη.

const widget = TradingWidget.create('#trading-widget', {
baseUrl: 'https://app.6mm.com',
auth: {
mode: 'partner-token',
tokenProvider: async ({ channelId, symbol, reason }) => {
const resp = await fetch('/api/trading/embed-token', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ channelId, symbol, reason }),
})
if (!resp.ok) {
throw new Error('Failed to request embed token')
}
return resp.json()
},
},
})

Σχετική τεκμηρίωση

Ροή backend

1. Partner frontend receives auth_request from the iframe.
2. SDK calls tokenProvider.
3. Partner frontend calls its own backend.
4. Partner backend validates the partner session.
5. Partner backend calls 6MM Agent API or Java SDK createEmbedToken.
6. SDK sends embedToken to the iframe through postMessage.
7. iframe exchanges embedToken for a 6MM access token.
8. iframe continues initialization and emits ready.

tokenProvider σύμβαση

ΠεδίοΚατεύθυνσηΠεριγραφή
channelIdSDK -> Backend συνεργάτηΜοναδικό αναγνωριστικό περιόδου σύνδεσης widget. Το backend θα πρέπει να το μεταβιβάσει στο createEmbedToken.
σύμβολοSDK -> Backend συνεργάτηΤρέχον ή αρχικό σύμβολο συναλλαγών μεταβιβάστηκε ως πλαίσιο ενοποίησης. δεν είναι περιορισμός άδειας ζεύγους συναλλαγών διακριτικών.
λόγοςSDK -> Backend συνεργάτηΓιατί το SDK ζητά ένα διακριτικό, όπως αρχική φόρτωση ή ανανέωση.
embedTokenPartner backend -> SDKΤο διακριτικό μικρής διάρκειας που δημιουργήθηκε από τον Agent SDK ή τον Πράκτορα API.
expireAtPartner backend -> SDKΗ χρονική σήμανση λήξης διακριτικού επιστράφηκε από 6MM.

Αντιμετώπιση αστοχίας

ΚατάστασηΣυνιστώμενος χειρισμός
Η συνεδρία συνεργάτη έληξεΕπιστρέψτε το 401 από το τελικό σημείο συνεργάτη και ζητήστε από τον χρήστη να συνδεθεί ξανά.
Η δημιουργία διακριτικού απέτυχε προσωρινάΡίξτε ένα σφάλμα στο tokenProvider και αφήστε το γραφικό στοιχείο να εμφανίσει ένα σφάλμα εξουσιοδότησης.
channelId αναντιστοιχίαΑπορρίψτε το αίτημα και δημιουργήστε ξανά την παρουσία του γραφικού στοιχείου.
Ο χρήστης δεν επιτρέπεται να κάνει συναλλαγέςΕπιστρέψτε ένα σφάλμα ελεγχόμενο από συνεργάτη και μην δημιουργήσετε διακριτικό ενσωμάτωσης.

Λειτουργία συμβατότητας: agent-sso

Το agent-sso διατηρεί τη ροή του παλιότερου εισιτηρίου /agent-entry. Προτιμήστε το διακριτικό συνεργάτη για νέες ενσωματώσεις.

const widget = TradingWidget.create('#trading-widget', {
baseUrl: 'https://app.6mm.com',
auth: {
mode: 'agent-sso',
entryUrlProvider: async ({ redirectPath }) => {
const resp = await fetch('/api/trading-entry', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ redirectPath }),
})
const data = await resp.json()
return data.webUrl
},
},
})

Κανόνες συναλλαγών δευτερολέπτων και περιβάλλοντος

Για σελίδες δευτερολέπτων, χρησιμοποιήστε τον ίδιο έλεγχο ταυτότητας partner-token με page και tradingMode που έχουν διαμορφωθεί στο Widget. Δεν υπάρχει ξεχωριστό διακριτικό πρόβλεψης. Κάθε κλήση tokenProvider πρέπει να λαμβάνει ένα νέο διακριτικό μίας χρήσης από το backend σας.

Επιστρέψτε τα embedToken, expireAt σε δευτερόλεπτα Unix και το αρχικό channelId ως αντικείμενο ανώτατου επιπέδου. Η απάντηση διακριτικού Agent SDK δεν περιέχει channelId. Το backend σας αντηχεί το τρέχον κανάλι Widget. Εάν το τελικό σημείο σας αναδιπλώνει τις απαντήσεις σε data, ξεδιπλώστε το πριν επιστρέψετε από το tokenProvider.

Ενσωμάτωση πλήρους δευτερολέπτων · Οδηγός περιβάλλοντος κεφαλαίων