ナビゲーションにスキップ

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 -> パートナー バックエンド一意のウィジェット セッション ID。バックエンドはそれを createEmbedToken に渡す必要があります。
シンボルSDK -> パートナー バックエンド現在または最初の取引シンボルが統合コンテキストとして渡されます。これは、トークン取引ペアの許可制限ではありません。
理由SDK -> パートナー バックエンドSDK が初期ロードやリフレッシュなどのトークンを要求する理由。
embedTokenパートナー バックエンド -> SDKAgent 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 呼び出しでは、バックエンドから新しいワンタイム トークンを取得する必要があります。

embedToken、expireAt を Unix 秒単位で返し、元の channelId をトップレベル オブジェクトとして返します。 Agent SDK トークン応答には channelId が含まれていません。バックエンドは現在のウィジェット チャネルをエコーし​​ます。エンドポイントが応答を data でラップしている場合は、tokenProvider から戻る前にラップを解除してください。

完全な秒単位の統合 · 資金環境ガイド