تسجيل الدخول عبر SSO مع Discourse

أنت لا تفهم ما أحاول نقله. أنا لا أسأل عن استرداد تفاصيل المستخدم من 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 باستخدام بيانات اعتماد مشروعهم مباشرة.