تدفق اتصال Discourse

نحن نتطلع إلى بناء مجتمع باستخدام واجهات برمجة تطبيقات Discourse. نواجه مشكلة في التدفق.

الواجهة الأمامية لدينا هي تطبيق React والواجهة الخلفية مبنية على NodeJS مع بنية خدمات مصغرة. نحن ندير تدفق المصادقة بالكامل من جانبنا.

من فهمي لـ Discourse Connect، هو:

  1. تنشئ الواجهة الأمامية الحمولة، مع رقم عشوائي (nonce) ومعلومات المستخدم، ثم تجري استدعاءً إلى example.com/session/SSO?sso=xx&sig=xx

  2. يقوم Discourse بعد ذلك بإجراء استدعاء عكسي إلى discourse_connect_url، حيث أقوم بالتحقق من صحة الحمولة ثم أرجع عنوان URL لإعادة التوجيه وسيتم إعادة توجيه المستخدمين إلى Discourse.

ومع ذلك، عندما أقوم بإنشاء الحمولة بمعلومات المستخدم، لا أتمكن من نشرها من الواجهة الأمامية الخاصة بي إلى Discourse ثم إلى الواجهة الخلفية. هل يمكن لأحد مساعدتي أم أن فهمي صحيح؟ لقد بحثت في المنتدى أيضًا عن حلول متوقعة ولكن دون جدوى.

لاحظ أنه عندما أقوم بتضمين معلومات المستخدم من الواجهة الخلفية، يمكنني تسجيل دخول المستخدمين إلى Discourse.

أريد أن يكون موقعنا الإلكتروني هو مزود المصادقة لـ Discourse، ونشر معلومات المستخدم من الواجهة الأمامية إلى الواجهة الخلفية. هل يمكن لأحد مساعدتي في التدفق أو ربما بعض الأمثلة لـ Javascript؟

إعجاب واحد (1)

مرحباً أنكيت،
التدفق في الواقع عكس ما وصفته. عند إعداد Discourse Connect على موقعك:

  1. سيؤدي النقر على زر تسجيل الدخول إلى توجيهك إلى discourse_connect_url مع معاملي GET sso و sig.
  2. سيدخل المستخدم بيانات اعتماده على discourse_connect_url وسيتم المصادقة عليها بواسطة موقعك، إذا نجحت المصادقة، فستحتاج إلى فك تشفير sso واتباع الخطوات الإضافية كما هو موضح في موضوع Discourse Connect.

لدي مشكلة تدفق مماثلة، لا أريد أن يصل المستخدم الخاص بي إلى Discourse وينقر على تسجيل الدخول، أحتاج إلى أن يصل المستخدم الخاص بي إلى المنصة الخاصة بي وينقر على زر “الوصول إلى Discourse” ويصل إلى Discourse بشفافية.

هل من الممكن لمنصتي إنشاء “nonce” للمستخدم الخاص بي باستخدام واجهة برمجة التطبيقات بطريقة آمنة، دون الحاجة إلى الوصول إلى Discourse مسبقًا والنقر على تسجيل الدخول؟

ملاحظة: يمكنني القيام بذلك بنفسي عن طريق الوصول إلى Discourse والنقر على الزر نيابة عنهم، دون علمهم، ولكن هذا ليس آمنًا للتطبيق.

الخيار الأبسط هو أن يكون زر “الوصول إلى Discourse” رابطًا إلى /login في المنتدى.