Zur Navigation springen

Trading Widget Authentifizierung

Verwenden Sie Partner-Token für neue eingebettete Handelsintegrationen SSO.

Als Markdown anzeigen

Empfohlener Modus: Partner-Token

Partner-Token vermeidet das Einfügen kurzer Token in URLs und behält apiSecret im Partner-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()
},
},
})

Zugehörige Dokumentation

Backend-Flow

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 Vertrag

FeldRichtungBeschreibung
channelIdSDK -> Partner-BackendEindeutige Widget-Sitzungskennung. Das Backend sollte es an createEmbedToken weiterleiten.
SymbolSDK -> Partner-BackendAktuelles oder anfängliches Handelssymbol, das als Integrationskontext übergeben wurde; Es handelt sich nicht um eine Berechtigungsbeschränkung für Token-Handelspaare.
GrundSDK -> Partner-BackendWarum SDK ein Token anfordert, z. B. Erstladevorgang oder Aktualisierung.
embedTokenPartner-Backend -> SDKKurzlebiges Token, das vom Agent SDK oder dem Agenten API erstellt wurde.
expireAtPartner-Backend -> SDKZeitstempel des Token-Ablaufs, zurückgegeben von 6MM.

Fehlerbehandlung

ZustandEmpfohlene Handhabung
Partnersitzung abgelaufenGeben Sie 401 vom Partnerendpunkt zurück und bitten Sie den Benutzer, sich erneut anzumelden.
Die Tokenerstellung ist vorübergehend fehlgeschlagenGeben Sie einen Fehler in tokenProvider aus und lassen Sie zu, dass das Widget einen Authentifizierungsfehler anzeigt.
channelId NichtübereinstimmungLehnen Sie die Anfrage ab und erstellen Sie die Widget-Instanz neu.
Der Benutzer darf nicht handelnGeben Sie einen vom Partner gesteuerten Fehler zurück und erstellen Sie kein Einbettungstoken.

Kompatibilitätsmodus: agent-sso

agent-sso behält den älteren /agent-entry-Ticketfluss bei. Bevorzugen Sie Partner-Token für neue Integrationen.

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
},
},
})

Sekundenhandel und Umweltregeln

Verwenden Sie für Sekundenseiten dieselbe partner-token-Authentifizierung mit page und tradingMode, die im Widget konfiguriert sind. Es gibt kein separates Vorhersage-Token. Jeder tokenProvider-Aufruf muss ein neues einmaliges Token von Ihrem Backend erhalten.

Geben Sie embedToken, expireAt in Unix-Sekunden und das Original channelId als Objekt der obersten Ebene zurück. Die Agent SDK-Token-Antwort enthält nicht channelId; Ihr Backend spiegelt den aktuellen Widget-Kanal wider. Wenn Ihr Endpunkt Antworten in data umschließt, entpacken Sie sie, bevor Sie von tokenProvider zurückkehren.

Vollständige Sekundenintegration · Leitfaden zur Fondsumgebung