Vai alla navigazione

Trading Widget Autenticazione

Utilizza il token partner per le nuove integrazioni di trading integrate SSO.
Visualizza come Markdown

Modalità consigliata: token partner

partner-token evita di inserire token brevi negli URL e mantiene apiSecret nel backend del partner.

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

Documentazione correlata

Flusso di back-end

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 contratto

CampoDirezioneDescrizione
channelIdSDK -> Backend partnerIdentificatore univoco della sessione del widget. Il backend dovrebbe passarlo a createEmbedToken.
simboloSDK -> Backend partnerSimbolo commerciale attuale o iniziale passato come contesto di integrazione; non è una restrizione del permesso della coppia di scambio di token.
motivoSDK -> Backend partnerPerché SDK richiede un token, ad esempio il caricamento iniziale o l’aggiornamento.
embedTokenBackend partner -> SDKToken di breve durata creato dal Agent SDK o dall’agente API.
expireAtBackend partner -> SDKTimestamp di scadenza del token restituito da 6MM.

Gestione dei guasti

CondizioneManipolazione consigliata
La sessione partner è scadutaRestituisci 401 dall’endpoint partner e chiedi all’utente di accedere nuovamente.
La creazione del token non è riuscita temporaneamenteGenera un errore in tokenProvider e consenti al widget di far emergere un errore di autenticazione.
channelId mancata corrispondenzaRifiuta la richiesta e ricrea l’istanza del widget.
All’utente non è consentito effettuare scambiRestituisce un errore controllato dal partner e non crea un token di incorporamento.

Modalità di compatibilità: agent-sso

agent-sso mantiene il vecchio flusso del ticket /agent-entry. Preferisci il token partner per le nuove integrazioni.

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

Contrattazione dei secondi e regole ambientali

Per le pagine dei secondi, utilizzare la stessa autenticazione partner-token con page e tradingMode configurata sul widget. Non esiste un token di previsione separato. Ogni tokenProvider chiamata deve ottenere un nuovo token una tantum dal tuo backend.

Restituisce embedToken, expireAt in Unix secondi e l’originale channelId come oggetto di livello superiore. La risposta del token Agent SDK non contiene channelId; il tuo backend riecheggia l’attuale canale widget. Se il tuo endpoint racchiude le risposte in data, scartalo prima di tornare da tokenProvider.

Integrazione completa di secondi · Guida ambientale ai fondi