Gezinmeye atla

Trading Widget Kimlik Doğrulaması

Yeni yerleşik ticaret SSO entegrasyonları için partner-token’ı kullanın.

Markdown olarak görüntüle

Önerilen mod: iş ortağı belirteci

partner-token, URL’lere kısa belirteçler koymaktan kaçınır ve apiSecret’yi iş ortağı arka ucunda tutar.

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

İlgili belgeler

Arka uç akışı

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 sözleşme

AlanYönTanım
channelIdSDK -> İş ortağı arka ucuBenzersiz widget oturum tanımlayıcısı. Arka uç bunu createEmbedToken’a aktarmalıdır.
sembolSDK -> İş ortağı arka ucuEntegrasyon bağlamı olarak aktarılan mevcut veya ilk ticaret sembolü; bu bir token alım satım çifti izni kısıtlaması değildir.
sebepSDK -> İş ortağı arka ucuSDK neden ilk yükleme veya yenileme gibi bir belirteç istiyor?
embedTokenİş ortağı arka ucu -> SDKAgent SDK veya Temsilci API tarafından oluşturulan kısa ömürlü belirteç.
expireAtİş ortağı arka ucu -> SDKBelirteç son kullanma tarihi zaman damgası 6MM tarafından döndürüldü.

Arıza yönetimi

DurumÖnerilen kullanım
İş ortağı oturumu sona erdiİş ortağı uç noktasından 401’i döndürün ve kullanıcıdan tekrar oturum açmasını isteyin.
Belirteç oluşturma işlemi geçici olarak başarısız oldutokenProvider’da bir hata atın ve widget’ın bir kimlik doğrulama hatası göstermesine izin verin.
channelId uyumsuzluğuİsteği reddedin ve widget örneğini yeniden oluşturun.
Kullanıcının ticaret yapmasına izin verilmiyorİş ortağı tarafından kontrol edilen bir hata döndürün ve yerleştirme jetonu oluşturmayın.

Uyumluluk modu: ajan-sso

Agent-sso eski /agent-giriş bilet akışını korur. Yeni entegrasyonlar için partner token’ı tercih edin.

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

Saniye ticareti ve çevre kuralları

Saniyelik sayfalar için, Widget’ta yapılandırılmış page ve tradingMode ile aynı partner-token kimlik doğrulamasını kullanın. Ayrı bir tahmin jetonu yoktur. Her tokenProvider çağrının arka uçtan yeni bir kerelik jeton alması gerekir.

Unix saniyelerinde embedToken, expireAt’yi ve orijinal channelId’yi üst düzey bir nesne olarak döndürün. Agent SDK belirteç yanıtı channelId içermiyor; arka ucunuz mevcut Widget kanalını yansıtır. Uç noktanız yanıtları data içinde sarıyorsa, tokenProvider’dan dönmeden önce paketi açın.

Tam saniye entegrasyonu · Fon ortamı kılavuzu