Skip to navigation

Trading Widget المصادقة

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

View as Markdown

الوضع الموصى به: رمز الشريك

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

التعامل مع الفشل

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

وضع التوافق: Agent-SSO

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

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

تداول الثواني وقواعد البيئة

بالنسبة لصفحات الثواني، استخدم نفس مصادقة partner-token مع page وtradingMode التي تم تكوينها على عنصر واجهة المستخدم. لا يوجد رمز تنبؤ منفصل. يجب أن تحصل كل مكالمة tokenProvider على رمز مميز جديد لمرة واحدة من الواجهة الخلفية لديك.

قم بإرجاع embedToken، expireAt في ثواني Unix، والأصل channelId ككائن عالي المستوى. لا تحتوي استجابة الرمز المميز Agent SDK على channelId؛ الواجهة الخلفية الخاصة بك تعكس صدى قناة الأدوات الحالية. إذا كانت نقطة النهاية الخاصة بك تحتوي على الاستجابات في data، فقم بإزالتها قبل العودة من tokenProvider.

تكامل ثواني كاملة · دليل بيئة الصناديق