Ir para a navegação

Trading Widget Autenticação

Use 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 exclusivo 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 parceiroPor que o SDK está solicitando um token, como carregamento inicial ou 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 retornado por 6MM.

Tratamento de falhas

DoençaManuseio recomendado
A sessão do parceiro expirouRetorne 401 do endpoint do parceiro e peça ao usuário para entrar novamente.
A criação do token falhou temporariamenteLance um erro em tokenProvider e permita que o widget exiba um erro de autenticação.
channelId incompatibilidadeRejeite a solicitação e recrie a instância do widget.
O usuário não tem permissão para negociarRetorne um erro controlado pelo parceiro e não crie 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, use a mesma autenticação partner-token com page e tradingMode configuradas no Widget. Não há token de previsão separado. Cada chamada tokenProvider deve obter um novo token único de seu back-end.

Retorne 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; seu backend ecoa o canal Widget atual. Se o seu endpoint agrupar respostas em data, desembrulhe-o antes de retornar de tokenProvider.

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