跳到导航

Trading Widget 身份驗證

使用合作伙伴令牌進行新的嵌入式交易 SSO 集成。

以 Markdown 格式查看

推薦模式:合作伙伴代幣

Partner-token 避免在 URL 中放置短令牌,並將 apiSecret 保留在合作伙伴後端。

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

相關文檔

後端流程

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合同

場地方向描述
channelIdSDK -> 合作伙伴後端唯一的小部件會話標識符。後端應將其傳遞給 createEmbedToken。
象徵SDK -> 合作伙伴後端作為集成上下文傳遞的當前或初始交易品種;這不是代幣交易對的權限限制。
原因SDK -> 合作伙伴後端為什麼 SDK 正在請求令牌,例如初始加載或刷新。
embedToken合作伙伴後端 -> SDK由 Agent SDK 或代理 API 創建的短期令牌。
expireAt合作伙伴後端 -> SDK6MM 返回的令牌過期時間戳。

故障處理

健康)狀況推薦處理方式
合作伙伴會話已過期從合作伙伴端點返回 401 並要求用戶再次登錄。
令牌創建暫時失敗在 tokenProvider 中拋出錯誤並允許小部件顯示身份驗證錯誤。
channelId 不匹配拒絕請求並重新創建小部件實例。
用戶不允許交易返回合作伙伴控制的錯誤,並且不創建嵌入令牌。

兼容模式:代理-sso

agent-sso 保留舊的 /agent-entry 票證流程。首選合作伙伴令牌進行新集成。

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

秒數交易及環境規則

對於秒頁面,請使用與小部件上配置的 page 和 tradingMode 相同的 partner-token 身份驗證。沒有單獨的預測令牌。每個 tokenProvider 調用都必須從後端獲取一個新的一次性令牌。

以 Unix 秒為單位返回 embedToken、expireAt,並將原始 channelId 作為頂級對象。 Agent SDK令牌響應不包含channelId;您的後端會回顯當前的 Widget 頻道。如果您的端點將響應包裝在 data 中,請在從 tokenProvider 返回之前將其解開。

全秒整合 · 資金環境指南