أود إعداد المصادقة الموحدة (SSO) باستخدام GitHub OAuth. عند تسجيل دخول المستخدم إلى موقعي عبر GitHub، يجب أن يتم تسجيله تلقائيًا في Discourse. يتم تضمين تعليقات Discourse على الموقع.
كيف يمكنني القيام بذلك؟
أود إعداد المصادقة الموحدة (SSO) باستخدام GitHub OAuth. عند تسجيل دخول المستخدم إلى موقعي عبر GitHub، يجب أن يتم تسجيله تلقائيًا في Discourse. يتم تضمين تعليقات Discourse على الموقع.
كيف يمكنني القيام بذلك؟
للاتصال OAuth2 بموقعك الخاص، يمكنك استخدام هذه الإضافة
“تسجيل الدخول عبر GitHub” مدمج في discourse، ويمكنك العثور على تعليمات الإعداد هنا:
ما زلتُ مشوشًا.
في حال لم يكن الأمر واضحًا، لدي:
موقع إلكتروني مع مصادقة Github OAuth.
Discourse مع مصادقة Github OAuth.
لا يحتوي أي منهما على طرق تسجيل دخول أخرى.
عندما يسجل المستخدم الدخول إلى موقعي الإلكتروني، يجب أن يتم تسجيله تلقائيًا في Discourse أيضًا.
ما ينقصني هو الرابط بينهما. كيف يمكنني تسجيل دخوله إلى Discourse عندما يقوم بالمصادقة عبر Github OAuth على موقعي الإلكتروني؟
عندما يسجل شخص ما الدخول إلى موقعك الإلكتروني، فإن أي تواصل يحدث يكون فقط بين GitHub وموقعك الإلكتروني.
أي أن:
موقعك الإلكتروني يتصل بـ GitHub لطلب التحقق من وجود المستخدم في قاعدة بياناتهم.
يُجيب GitHub بنعم (أو لا) ويعيد بيانات المستخدم أو رمز المصادقة كما طلب موقعك.
الآن، يتم تسجيل دخول المستخدم إلى موقعك.
لا يوجد أي دور للنقاش في هذه المعادلة. ما تحتاجه هنا هو طريقة لإخبار نظام Discourse بأن المستخدم المعين قد سجل دخوله للتو، وبالتالي يجب تسجيله في Discourse أيضًا.
ما تحتاجه هو طريقة لوضع تسجيل الدخول إلى Discourse في قائمة الانتظار جنبًا إلى جنب مع تسجيل الدخول إلى موقعك الإلكتروني، بحيث يعرف Discourse متى يسجل المستخدم الدخول أو الخروج.
يقوم Auth0 بذلك بشكل ممتاز من البداية.
طريقة أخرى هي استخدام Discourse كخادم SSO الخاص بك.
شكرًا على الردود!
أدركت أن مكون المصادقة الذي أستخدمه يعمل بالفعل عبر OAuth ويمنح رمز JWT. أعتقد أن أمر discourse-jwt سيناسبني.