فهمي لهذا هو أننا نستطيع السماح لـ Discourse باستخدام واجهة برمجة التطبيقات (API) الخاصة بنا للتحقق من المصادقة وإرسال بعض المعلمات المخصصة أيضًا. صححني إذا كنت مخطئًا.
ما نريده هو أن نستخدم صفحة تسجيل الدخول الخاصة بنا (عندما ينقر المستخدمون على تسجيل الدخول في discourse.open…com، يجب أن تفتح صفحة تسجيل الدخول الخاصة بنا “kan.open..com”). وبمجرد نجاح تسجيل الدخول، يجب أن ينتقل إلى موقع Discourse. لقد رأينا عددًا قليلاً من المواقع مثل Twitter أو Atlassian وما إلى ذلك تفعل الشيء نفسه. هل يمكنك مساعدتنا بمزيد من التفاصيل حول كيفية تحقيق ذلك.
هذا صحيح إذا كنت تقصد بـ “استخدام واجهة برمجة التطبيقات الخاصة بنا” “سنقوم بتعديل واجهة برمجة التطبيقات الخاصة بنا لدعم Discourse Connect”. تفاصيل كيفية القيام بذلك موجودة في المستندات التي قمت بربطها. إذا كنت تريد أن يتم إعادة توجيه الجميع على الفور بدلاً من رؤية أي شيء في منتداك، فستحتاج إلى تشغيل إعداد الموقع “تسجيل الدخول مطلوب”.
لدي سؤال بخصوص إعداد Discourse SSO (DiscourseConnect). هل هناك طريقة لتضمين معلمات إضافية في الطلب عندما يقوم Discourse بالوصول إلى عنوان URL الخاص بـ DiscourseConnect؟ على وجه التحديد، أرغب في تمرير بيانات المستخدم في الطلب إلى عنوان URL الخاص بـ DiscourseConnect، مثل رمز مميز للمستخدم أو معرف المستخدم، والذي يمكنني استخدامه للمصادقة على المستخدم وإكمال عملية تسجيل الدخول عبر SSO.
التحدي الذي أواجهه هو أنه يُطلب من المستخدمين تسجيل الدخول مرتين - مرة لمشروعي ومرة أخرى لـ Discourse - عند الاتصال عبر SSO. من الناحية المثالية، أود تبسيط العملية بحيث إذا كان المستخدم قد سجل الدخول بالفعل إلى مشروعي، فلن يضطر إلى تسجيل الدخول مرة أخرى بنفس بيانات الاعتماد على مشروعي.
هل هناك ميزة في Discourse أو أي ممارسات موصى بها للتعامل مع هذا؟ سأكون ممتنًا لأي توجيهات أو اقتراحات لجعل تجربة SSO أكثر سلاسة.
في المرة الأولى التي أقوم فيها بتسجيل الدخول عبر SSO باستخدام Discourse، أود أن أعرف ما إذا كانت هناك أي واجهة برمجة تطبيقات (API) أو طريقة متاحة يمكن أن تزودني ببيانات المستخدم، مثل معرف المستخدم أو الرمز المميز، والتي يمكنني إرسالها إلى واجهة برمجة تطبيقات Discourse. في المقابل، ستقوم Discourse بتضمين تلك البيانات، مثل معرف المستخدم أو الرمز المميز، في طلب عنوان URL الخاص بـ Discourse Connect.
أنت لا تفهم ما أحاول نقله. أنا لا أسأل عن استرداد تفاصيل المستخدم من Discourse بعد تسجيل الدخول. يرجى فهم التدفق الكامل لما أحاول تحقيقه، وإخباري إذا كان ذلك ممكنًا مع Discourse أو إذا كان يجب علي المضي قدمًا في طريقتي الخاصة.
حاليًا، لدي مشروع مبني باستخدام إطار عمل Laravel، وأريد تزويد المستخدمين بالوصول إلى منتدى Discourse للحصول على ملاحظات. لقد قررت تنفيذ تسجيل دخول SSO لـ Discourse. لقد أنشأت حساب مسؤول Discourse ومكّنت الإعدادات اللازمة لتسجيل دخول SSO، بما في ذلك تمكين SSO، وتعيين عنوان URL لإعادة التوجيه، وتكوين المفتاح السري.
الآن، لقد أضفت زر “Discourse Connect” داخل مشروعي. أريد عندما ينقر المستخدمون على هذا الزر، التسجيل أو تسجيل الدخول باستخدام بيانات الاعتماد الخاصة بي، وتسجيل الدخول تلقائيًا إلى Discourse. عندما ينقر المستخدمون على زر “Discourse Connect”، يتم توجيههم إلى عنوان URL الأساسي للمجتمع الخاص بي مع نقطة نهاية الجلسة/SSO، والتي بدورها تعيد التوجيه إلى عنوان URL الخاص بـ Discourse Connect الخاص بي. أتلقى معلمات SSO و sig في الطلب، والتي أفهم أنها للتحقق. ومع ذلك، أحتاج إلى user_id أو بعض المعرف لاسترداد بيانات المستخدم من قاعدة البيانات الخاصة بي للتحقق والمصادقة وتسجيل دخول المستخدم إلى Discourse.
سؤالي هو: هل هناك واجهة برمجة تطبيقات (API) أو آلية ما في Discourse يمكنها إرجاع user_id مع معلمات SSO و sig في الطلب؟ هذا مهم لأنه بدون استرداد بيانات المستخدم في الطلب، سأضطر إلى جعل المستخدم يسجل الدخول مرة أخرى، مما سيوفر تجربة مستخدم سيئة. في الأساس، عندما يسجل المستخدم الدخول إلى مشروعي وينقر على زر “Discourse Connect”، يتم تشغيل عنوان URL الخاص بـ Discourse Connect، وأتلقى معلمات SSO و sig. للمصادقة على المستخدم، أحتاج إلى جلب بيانات المستخدم من قاعدة البيانات، ولكن هذا سيتطلب من المستخدم تسجيل الدخول مرة أخرى، وهو ما أريد تجنبه.
أريد تجربة سلسة حيث، إذا قام المستخدم بتسجيل الدخول مرة واحدة بالفعل، فلن يحتاج إلى تسجيل الدخول مرة أخرى. يجب أن يكونوا قادرين على الوصول إلى منتدى Discourse باستخدام بيانات اعتماد مشروعهم مباشرة.