Ir para a navegação

Trading Widget Autenticação

Utilize token de parceiro para novas integrações comerciais incorporadas SSO.

Ver como Markdown

Modo recomendado: token de parceiro

Partner-token evita colocar tokens curtos em URLs e mantém apiSecret no back-end do parceiro.

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

Documentação relacionada

Fluxo de 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 contrato

CampoDireçãoDescrição
channelIdSDK -> Back-end do parceiroIdentificador único da sessão do widget. O backend deve passá-lo para createEmbedToken.
símboloSDK -> Back-end do parceiroSímbolo de negociação atual ou inicial passado como contexto de integração; não é uma restrição de permissão de pares de negociação de tokens.
razãoSDK -> Back-end do parceiroPorque é que o SDK está a solicitar um token, como o carregamento inicial ou a atualização.
embedTokenBack-end do parceiro -> SDKToken de curta duração criado pelo Agent SDK ou Agente API.
expireAtBack-end do parceiro -> SDKCarimbo de data e hora de expiração do token devolvido por 6MM.

Tratamento de falhas

EstadoManuseamento recomendado
A sessão do parceiro expirouDevolver 401 do endpoint do parceiro e pedir ao utilizador para entrar novamente.
A criação do token falhou temporariamenteLance um erro em tokenProvider e permita que o widget apresente um erro de autenticação.
channelId incompatibilidadeRejeite o pedido e recrie a instância do widget.
O utilizador não tem permissão para negociarDevolver um erro controlado pelo parceiro e não criar um token incorporado.

Modo de compatibilidade: agente-sso

agent-sso mantém o fluxo de tickets mais antigo /agent-entry. Prefira token de parceiro para novas integrações.

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

Regras ambientais e de negociação de segundos

Para páginas de segundos, utilize a mesma autenticação partner-token com page e tradingMode configuradas no Widget. Não existe um token de previsão separado. Cada chamada tokenProvider deve obter um novo token único do seu back-end.

Devolver embedToken, expireAt em segundos Unix e o channelId original como um objeto de nível superior. A resposta do token Agent SDK não contém channelId; o seu backend ecoa o canal Widget atual. Se o seu endpoint agrupar as respostas em data, desembrulhe-o antes de retornar de tokenProvider.

Integração completa de segundos · Guia ambiental de fundos