أقوم بتنفيذ خدمة مصادقة خاصة بي كمزوّد SSO لمنصة Discourse. تعمل بشكل جيد. لكن عندما يفتح مستخدمو (غير المسجلين) رابط موضوع مملوء مسبقًا، فإنهم لا يرون البيانات المملوءة مسبقًا بعد إعادة التوجيه إلى Discourse.
السيناريو الكامل:
يفتح مستخدم غير مسجل رابط إنشاء موضوع مملوء مسبقًا
يتم إعادة توجيهه تلقائيًا إلى صفحة SSO
يسجل الدخول باستخدام SSO ثم يُعاد توجيهه إلى http://discourse_site/session/sso_login?....
هنا أتوقع أن يرى المستخدم مربع إنشاء الموضوع مع البيانات المملوءة، لكن Discourse يعرض فقط صفحة أحدث المواضيع. بل لا يظهر حتى مربع إنشاء الموضوع
هل يمكن لأي شخص مساعدتي في هذه المشكلة؟ هل هناك مشكلة في إعداداتي أم أنها خطأ برمجي؟
يمكنني أيضًا التأكيد أنه إذا كنت داخل موضوع معين واضغطت على تسجيل الدخول، فإن إعادة التوجيه ستعمل بشكل صحيح وسأعود إلى ذلك الموضوع.
شكرًا لك @simon على ردك. للأسف لم أستطع جعل الأمر يعمل. في الرابط الخاص بك، كان يُشار إلى استخدام رابط مثل:
http://localhost:3000/session/sso?return_path=http%3A%2F%2Flocalhost%3A3000%2Fnew-message%3Fusername%3Dscossar%26title%3DInformation+requested+about+gentle+yoga+classes
في البداية، افترضت أنه يجب إضافته إلى المرحلة 6 من وثائق SSO الرسمية لـ Discourse. وبالتالي سيكون الشكل كالتالي:
كل ما تحتاجه هو إنشاء رابط بالصيغة المذكورة في ذلك المنشور. ستحتاج إلى استبدال عنوان URL الصحيح لموقع Discourse الخاص بك، وتغيير اسم المستخدم من scossar إلى اسم مستخدم موجود بالفعل على موقعك. لا تقم بإضافة معاملات payload أو sig إلى الرابط. فكل ذلك يتم تلقائيًا من خلال تطبيق SSO الحالي لديك. كل ما يفعله معامل return_path هو إعادة توجيه المستخدم إلى عنوان URL سينشئ موضوعًا مُعبَّأ مسبقًا.
لاحظ أنه في المثال الذي ربطتُ به، كنتُ أنشئ رسالة مُعبَّأة مسبقًا وليس موضوعًا. ستحتاج إلى تعديل معامل return_path المذكور في كود المثال لإنشاء موضوع بدلاً من رسالة.