Przejdź do nawigacji

Trading Widget Uwierzytelnienie

Użyj tokena partnera do nowych integracji handlu wbudowanego SSO.

Zobacz jako Markdown

Zalecany tryb: token partnera

partner-token pozwala uniknąć umieszczania krótkich tokenów w adresach URL i przechowuje apiSecret na zapleczu partnera.

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

Powiązana dokumentacja

Przepływ backendu

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 umowa

PoleKierunekOpis
channelIdSDK -> Zaplecze partneraUnikalny identyfikator sesji widgetu. Backend powinien przekazać go do createEmbedToken.
symbolSDK -> Zaplecze partneraAktualny lub początkowy symbol handlowy przekazywany jako kontekst integracji; nie jest to ograniczenie uprawnień dla pary handlowej tokenów.
powódSDK -> Zaplecze partneraDlaczego SDK żąda tokena, takiego jak początkowe ładowanie lub odświeżenie.
embedTokenZaplecze partnera -> SDKToken krótkotrwały utworzony przez Agent SDK lub Agenta API.
expireAtZaplecze partnera -> SDKSygnatura czasowa wygaśnięcia tokena zwrócona przez 6MM.

Obsługa awarii

StanZalecana obsługa
Sesja partnera wygasłaZwróć 401 z punktu końcowego partnera i poproś użytkownika o ponowne zalogowanie się.
Utworzenie tokena tymczasowo nie powiodło sięZgłoś błąd w tokenProvider i pozwól widżetowi wyświetlić błąd uwierzytelnienia.
channelId niezgodnośćOdrzuć żądanie i utwórz ponownie instancję widżetu.
Użytkownikowi nie wolno handlowaćZwróć błąd kontrolowany przez partnera i nie twórz tokena osadzania.

Tryb zgodności: agent-sso

agent-sso utrzymuje przepływ starszych biletów /agent-entry. Preferuj token partnera w przypadku nowych integracji.

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

Handel sekundami i zasady ochrony środowiska

W przypadku stron sekundowych użyj tego samego uwierzytelniania partner-token z page i tradingMode skonfigurowanymi w Widgecie. Nie ma osobnego tokena przewidywania. Każde wywołanie tokenProvider musi uzyskać nowy jednorazowy token z Twojego backendu.

Zwróć embedToken, expireAt w uniksowych sekundach i oryginalny channelId jako obiekt najwyższego poziomu. Odpowiedź tokena Agent SDK nie zawiera channelId; Twój backend odzwierciedla bieżący kanał Widget. Jeśli Twój punkt końcowy zawija odpowiedzi w data, rozpakuj go przed powrotem z tokenProvider.

Pełna integracja sekundowa · Przewodnik po środowisku funduszy