مصادقة مستخدميك
الطرق الأربع التي يمكن بها للودجت مصادقة مستخدميك النهائيين، وكيف تختار ما يناسب منظومتك التقنية.
عندما يستخدم أحدهم المحادثة في تطبيقك، يحتاج Syncanix إلى معرفة هويته — كي يتصرّف المساعد بصفة ذلك الشخص دون سواه. وتبقى أنت متحكّمًا في الهوية: يتحقّق Syncanix من رمز يُصدِره نظامك أنت، بدلاً من مطالبة مستخدميك بإنشاء حساب Syncanix منفصل.
أوضاع المصادقة الأربعة
اختر واحدًا بناءً على كيفية تعامل تطبيقك مع المصادقة أصلاً. وتتدرّج من بضعة أسطر من شيفرة الخادم إلى إعداد موجَّه بالكامل عبر وسيط لا يرى فيه الودجت أي رمز.
رمز جلسة موقَّع (الافتراضي)
يُصدر الخادم الخلفي لديك رمزًا موقّعًا قصير الأجل للمستخدم المسجّل باستخدام سرّ مشترك، ثم يسلّمه إلى الودجت. إنه أسرع مسار — بضعة أسطر من كود الخادم — ويناسب معظم التطبيقات التي لديها تسجيل دخول خاص بها. أنشئ السرّ المشترك من صفحة اتحاد الهويات في لوحة التحكم: يُعرض مرة واحدة فقط، ويمكنك تدويره في أي وقت.
محوّل موفّر الهوية (موصى به)
إن كنت تستخدم بالفعل Auth0 أو Clerk أو Amazon Cognito أو WorkOS، يقرأ الودجت الرمز الذي تُصدِره حزمة SDK لموفّرك أصلاً في المتصفح، ويتحقّق منه Syncanix على الخادم باستخدام المفاتيح العامة لموفّرك. لا سرّ جديد لإدارته، وتعمل إعادة التحقّق الإضافية مباشرةً.
تبادل رموز OAuth
لإعدادات المؤسسات، يدعم Syncanix التدفّق المعياري لتبادل الرموز (RFC 8693): يبادل خادم التفويض لديك رمزًا قائمًا برمز محدود النطاق مرتبط بجلسة المحادثة. وهو الأمثل عندما يريد فريق الأمن لديك أن يُصدَر كل رمز لاحق ويُدقَّق بصراحة.
خادم وسيط للواجهة الأمامية (BFF)
الخيار الأشدّ إحكامًا: وسيط صغير تشغّله يقع بين الودجت وSyncanix، فلا تصل الرموز إلى المتصفح إطلاقًا. اختره عندما تمنع السياسة وجود أي رمز في شيفرة جانب العميل.
رمز الجلسة الموقّع من البداية إلى النهاية
أسرع تكامل هو نقطة نهاية صغيرة للرموز في خادمك الخلفي مع سطرين في صفحتك. إليك الإعداد الكامل.
- أنشئ السرّ المشتركفي لوحة التحكم افتح الإعدادات ← اتحاد الهوية وأنشئ سرّ رمز الجلسة. يُعرض مرة واحدة فقط: خزّنه في مدير الأسرار لديك، مثلًا باسم SYNCANIX_SESSION_SECRET.
- أضف نقطة نهاية للرموز في خادمكخلف تسجيل الدخول الحالي لديك، وقّع رمزًا قصير الأجل للمستخدم الحالي بالسرّ المشترك.
- سلّم الرمز إلى الودجتسجّل مزوّد رموز يجلب من نقطتك: يستدعيه الودجت قبل كل دور.
مثال Node بمكتبة jose (أي مكتبة JWT بأي لغة تعمل بالطريقة نفسها):
import { SignJWT } from 'jose';
const secret = new TextEncoder().encode(process.env.SYNCANIX_SESSION_SECRET);
app.get('/api/chat-token', requireLogin, async (req, res) => {
const token = await new SignJWT({ tenant: process.env.SYNCANIX_WORKSPACE_ID })
.setProtectedHeader({ alg: 'HS256' })
.setSubject(req.user.id)
.setAudience('syncanix-tools')
.setIssuedAt()
.setExpirationTime('10m')
.sign(secret);
res.json({ token });
});أيًا كانت المكتبة، يجب أن يحمل الرمز هذه المطالبات بالضبط:
- aud — السلسلة الثابتة syncanix-tools.
- sub — المعرّف الثابت لمستخدمك؛ هذا مَن يتصرف المساعد باسمه.
- tenant — معرّف مساحة عملك (يمك نك قراءته من عنوان اتصال MCP في صفحة MCP بلوحة التحكم).
- exp وiat — انتهاء الصلاحية بعد الإصدار بما لا يتجاوز 15 دقيقة؛ والأقصر أفضل.
ثم اربط الودجت بنقطتك:
window.syncanix?.setTokenProvider(async () => {
const res = await fetch('/api/chat-token');
const { token } = await res.json();
return token;
});أيُّها ينبغي أن تختار؟
- تريد أسرع انطلاقة
- استخدم رمز الجلسة الموقَّع — كل ما تحتاجه نقطة نهاية صغيرة في الخادم.
- تستخدم بالفعل موفّر هوية مستضافًا
- استخدم محوّل موفّر الهوية — فهو يعيد استخدام ما لديك ويتيح التحقّق الإضافي.
- لديك متطلبات أمنية صارمة
- استخدم تبادل رموز OAuth أو الـ BFF، تبعًا لما إذا كان يُسمح للرموز بالوصول إلى المتصفح أصلاً.