Skip to navigation

Trading Widget Otentikasi

Gunakan token mitra untuk integrasi SSO perdagangan tertanam yang baru.
View as Markdown

Mode yang disarankan: token mitra

partner-token menghindari penempatan token pendek di URL dan menyimpan apiSecret di backend partner.

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

Dokumentasi terkait

Aliran ujung belakang

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 kontrak

BidangArahKeterangan
channelIdSDK -> Backend mitraPengidentifikasi sesi widget unik. Backend harus meneruskannya ke createEmbedToken.
simbolSDK -> Backend mitraSimbol perdagangan saat ini atau awal diteruskan sebagai konteks integrasi; ini bukan pembatasan izin pasangan dagang token.
alasanSDK -> Backend mitraMengapa SDK meminta token, seperti pemuatan awal atau penyegaran.
embedTokenBackend mitra -> SDKToken berumur pendek yang dibuat oleh Agent SDK atau Agen API.
expireAtBackend mitra -> SDKStempel waktu kedaluwarsa token dikembalikan oleh 6MM.

Penanganan kegagalan

KondisiPenanganan yang disarankan
Sesi mitra berakhirKembalikan 401 dari titik akhir mitra dan minta pengguna untuk masuk lagi.
Pembuatan token gagal untuk sementaraLemparkan kesalahan di tokenProvider dan izinkan widget menampilkan kesalahan autentikasi.
channelId ketidakcocokanTolak permintaan dan buat ulang instance widget.
Pengguna tidak diizinkan untuk berdagangKembalikan kesalahan yang dikontrol mitra dan jangan membuat token semat.

Mode kompatibilitas: agen-sso

agent-sso mempertahankan aliran tiket lama /agent-entry. Lebih memilih token mitra untuk integrasi baru.

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

Perdagangan detik dan aturan lingkungan

Untuk halaman detik, gunakan autentikasi partner-token yang sama dengan page dan tradingMode yang dikonfigurasi pada Widget. Tidak ada token prediksi terpisah. Setiap panggilan tokenProvider harus mendapatkan token satu kali baru dari backend Anda.

Kembalikan embedToken, expireAt dalam hitungan detik Unix, dan channelId asli sebagai objek tingkat atas. Respons token Agent SDK tidak mengandung channelId; backend Anda menggemakan saluran Widget saat ini. Jika titik akhir Anda membungkus respons dalam data, buka bungkusnya sebelum kembali dari tokenProvider.

Integrasi detik penuh · Panduan lingkungan dana