Trading Widget المصادقة

استخدم رمز الشريك لتكاملات جديدة مدمجة SSO تداول.

View as Markdown

يتجنب الشريك-الرمز وضع رموز قصيرة في عناوين URL ويبقي apiSecret في خلفية الشريك.

1const widget = TradingWidget.create('#trading-widget', {
2 baseUrl: 'https://app.6mm.com',
3 auth: {
4 mode: 'partner-token',
5 tokenProvider: async ({ channelId, symbol, reason }) => {
6 const resp = await fetch('/api/trading/embed-token', {
7 method: 'POST',
8 credentials: 'include',
9 headers: { 'Content-Type': 'application/json' },
10 body: JSON.stringify({ channelId, symbol, reason }),
11 })
12
13 if (!resp.ok) {
14 throw new Error('Failed to request embed token')
15 }
16
17 return resp.json()
18 },
19 },
20})
  • [إنشاء رمز تضمين] (/sdk/agent-sdk/java/embed-token): مثال على إصدار الرمز الخلفي.
  • [Trading Widget Quick Start] (/sdk/trading-widget/quick-start): تدفق تهيئة كامل.
  • [أسرار وتوقيع] (/sdk/security/secrets-signing): احتفظ ببيانات اعتماد العميل المميزة في الخلفية.
  • استكشاف الأخطاء: تشخيص فشل الجلسة، الرمز، المصدر، والتهيئة الصحيحة.

تدفق الخلفية

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خلفية الشريك -> SDKتم إعادة ختم انتهاء صلاحية الرمز بواسطة 6MM.

التعامل مع الأعطال

الحالةالتعامل الموصى به
انتهت صلاحية جلسة الشريكأعد 401 من نقطة نهاية الشريك واطلب من المستخدم تسجيل الدخول مرة أخرى.
فشل إنشاء الرموز مؤقتاضع خطأ في tokenProvider ويسمح للأداة بظهور خطأ في المصادقة.
channelId عدم التوافقارفض الطلب وأعد إنشاء نسخة الويدجت.
المستخدم غير مسموح له بالتداولأعيد خطأ يتحكم به الشريك ولا تنشئ رمز تضمين.

وضع التوافق: agent-sso

Agent-SSO يحافظ على تدفق تذاكر الدخول القديمة /وكيل. أفضل الشريك الرمزي للتكاملات الجديدة.

1const widget = TradingWidget.create('#trading-widget', {
2 baseUrl: 'https://app.6mm.com',
3 auth: {
4 mode: 'agent-sso',
5 entryUrlProvider: async ({ redirectPath }) => {
6 const resp = await fetch('/api/trading-entry', {
7 method: 'POST',
8 credentials: 'include',
9 headers: { 'Content-Type': 'application/json' },
10 body: JSON.stringify({ redirectPath }),
11 })
12 const data = await resp.json()
13 return data.webUrl
14 },
15 },
16})