هل هذا ممكن؟

مرحباً يا أعضاء!
أتمنى أن تكونوا جميعاً بخير.
لقد قمت بإنشاء منتدى discourse وحاولت ربطه بموقعي الإلكتروني (ASP.NET).
في البداية، استخدمت Discourse-Connect ونجحت، ولكن مع ذلك لا يمكن للمستخدمين تسجيل الدخول والتسجيل في المنتدى.
لذلك، حاولت استخدام Discourse-Api لتسجيل الدخول إلى المنتدى، ولكن لم يكتمل الأمر.
لقد قرأت العديد من الوثائق ولكنني لم أجد حلاً صحيحاً.
هل يمكن لأي شخص مساعدتي في حل هذه المشكلة أو إخباري بالإمكانية، الحل الصحيح.
مع خالص التقدير

لديك احتمالان:

  • قم بإعداد DiscourseConnect بحيث يقوم المستخدمون بالتسجيل وتسجيل الدخول إلى موقعك الإلكتروني، وعندما يحاولون تسجيل الدخول إلى منتداك، سيتم ذلك تلقائيًا. هذا هو الإعداد المعتاد. إذا قمت بتكوين الأشياء بهذه الطريقة، فستتم جميع عمليات التسجيل وتسجيل الدخول على موقعك الإلكتروني. سيتم تعطيل تسجيل الدخول باسم المستخدم/كلمة المرور والتسجيل في منتداك.

  • قم بإعداد DiscourseConnect بحيث يقوم المستخدمون بالتسجيل وتسجيل الدخول إلى منتداك، وعندما يحاولون تسجيل الدخول إلى موقعك (مواقعك) الإلكتروني، سيتم ذلك تلقائيًا. يُطلق على هذا إعداد Discourse كموفر DiscourseConnect، ويمكن العثور على كيفية القيام بذلك هنا.

3 إعجابات

شكراً لردك السريع.
هل هناك أي إمكانيات بدون DiscourseConnect؟

لماذا لا ترغب في استخدامه؟

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

5 إعجابات

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

حسنًا، إذا كنت ترغب في تسجيل الدخول والتسجيل محليًا على Discourse، فيرجى إخباري بنوع التكامل الذي تبحث عنه مع موقعك على الويب.

إعجابَين (2)

غرضي هو أن أفعل هذا:

  1. إذا قام المستخدم بتسجيل الدخول إلى موقعي، فعند الذهاب إلى المنتدى، يتم تسجيل دخول المستخدم تلقائيًا إلى المنتدى.
  2. ويمكن للمستخدم تسجيل الدخول والاشتراك في المنتدى.
  3. إذا قام المستخدم بتسجيل الدخول إلى المنتدى، فعند الذهاب إلى موقعي، يتم تسجيل دخول المستخدم تلقائيًا إلى موقعي.
    مع DiscourseConnect، يمكنني تنفيذ 1) و 3)، ولكن لا يمكنني تنفيذ 2).
    لكن 2) مهم جدًا بالنسبة لنا.

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

لماذا هذا مهم جدًا بالنسبة لك؟

3 إعجابات

شكرا لمساعدتك.
ولكن، رئيسي يريدها.
يرجى التحقق من أدائي.
لقد حاولت الأداء باستخدام Discourse API على هذا النحو

  1. استدعاء GET ‘/session/csrf’ والحصول على رمز csrf وملف تعريف الارتباط
  2. استدعاء POST ‘/session’ مع Header:‘X-CSRF-Token’=‘csrf token’, ‘Cookie’ = ‘obtained cookie’, Data: login, password, timezone, second-factor-method,authenticity-token
  3. استدعاء POST ‘/login’ مع Header: ‘Cookie’=‘obtained cookie from /session’
    Data: username, password, redirect

جميع السجلات متطابقة مع سير عمل تسجيل الدخول لـ Discourse.
ولكن عندما أقوم بإعادة التوجيه إلى منتدى Discourse، لم يتم تسجيل دخول المستخدم.

كيف يمكنني حل هذه المشكلة؟ ما الخطأ؟

شكرا لمساعدتك مرة أخرى.

ملاحظة: خادمي هو Ubuntu Nginx Server.

إذًا، تحتاج إلى شرح لرئيسك أن تسجيل المستخدمين في أكثر من مكان هو فكرة سيئة للغاية. ستصبح الأمور فوضى عارمة. اشرح له ما يحدث عندما تسجل في الموقع باسم المستخدم “usernameA” وفي المنتدى باسم المستخدم “usernameB”، بنفس عنوان البريد الإلكتروني! أو ما سيحدث إذا قام المستخدم بتغيير كلمة المرور الخاصة به فقط على الموقع، أو فقط في Discourse. عندها ستتعطل الأمور!

ما فعلته يسجل دخول خادمك إلى المنتدى كمستخدم. لن يقوم بتعيين ملفات تعريف الارتباط للجلسة للمستخدم، لذلك لن يقوم بتسجيل دخول المستخدم إلى المنتدى.

بالإضافة إلى ذلك، يبدو أن لديك كلمة المرور النصية للمستخدم في متناول يدك. هذه فكرة سيئة للغاية. يجب عليك دائمًا تخزين تجزئة (تشفير أحادي الاتجاه) لكلمة المرور، وليس كلمة المرور النصية أبدًا. عندما يتم اختراق قاعدة بياناتك، ستكون جميع كلمات مرور المستخدمين معروفة للمهاجم. شيء آخر جيد لشرحه لرئيسك.

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

6 إعجابات

حسنا.
سأشرح لرئيسي هذه الأمور.
شكرا جزيلا.
أريد مناقشة المزيد معك (بالطبع ليس عن هذا).
مع خالص التقدير.

من فضلك ساعدني مرة أخرى.
لدي خادم منتديات به نطاق رئيسي واحد والعديد من النطاقات الفرعية.
هل يمكنني بناء العديد من منتديات Discourse على كل نطاق باستخدام قاعدة بيانات واحدة؟
وهل يمكنني البناء بهذه الطريقة؟:

  • على النطاق الرئيسي، تسجيل الدخول المحلي والتسجيل متاحان.
  • على النطاقات الفرعية، باستخدام DiscourseConnect، الاتصال بمواقعي.
    إذا كان ذلك ممكنًا، يرجى إرشادي للبناء.
    إذا كان مستحيلاً، يرجى إخباري بالسبب.
    شكرا لك.

نعم، هذا ممكن.

  • ابحث عن “multisite” في هذا المنتدى.
  • قم بإعداد الموقع الرئيسي كموفر لـ DiscourseConnect
  • قم بإعداد مواقع النطاق الفرعي كعميل لـ DiscourseConnect
3 إعجابات