Saltar a la navegación

Trading Widget Autenticación

Utilice el token de socio para nuevas integraciones comerciales integradas SSO.
Ver como Markdown

Modo recomendado: token de socio

partner-token evita poner tokens cortos en las URL y mantiene apiSecret en el backend del socio.

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

Documentación relacionada

Flujo de fondo

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

CampoDirecciónDescripción
channelIdSDK -> Backend del socioIdentificador de sesión de widget único. El backend debería pasarlo a createEmbedToken.
símboloSDK -> Backend del socioSímbolo comercial actual o inicial pasado como contexto de integración; no es una restricción de permiso para el par comercial de tokens.
razónSDK -> Backend del socioPor qué SDK solicita un token, como carga inicial o actualización.
embedTokenBackend del socio -> SDKToken de corta duración creado por el Agent SDK o el Agente API.
expireAtBackend del socio -> SDKMarca de tiempo de vencimiento del token devuelta por 6MM.

Manejo de fallas

CondiciónManejo recomendado
La sesión de socio expiróDevuelva 401 desde el punto final del socio y solicite al usuario que inicie sesión nuevamente.
La creación del token falló temporalmenteLanza un error en tokenProvider y permite que el widget muestre un error de autenticación.
channelId no coincideRechace la solicitud y vuelva a crear la instancia del widget.
El usuario no puede comerciarDevuelve un error controlado por el socio y no crea un token de inserción.

Modo de compatibilidad: agente-sso

agent-sso mantiene el flujo de tickets de entrada de agente/antiguos. Prefiere token de socio para nuevas integraciones.

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

Segundos reglas comerciales y ambientales.

Para páginas de segundos, use la misma autenticación partner-token con page y tradingMode configurados en el widget. No existe un token de predicción independiente. Cada tokenProvider llamada debe obtener un token nuevo y único de su backend.

Devuelve embedToken, expireAt en segundos de Unix y el channelId original como un objeto de nivel superior. La respuesta del token Agent SDK no contiene channelId; su backend hace eco del canal de widget actual. Si su punto final envuelve las respuestas en data, desempaquételo antes de regresar de tokenProvider.

Integración de segundos completos · Guía del entorno de fondos