بعد البحث أكثر قليلاً، أتساءل ما إذا كان حل أقل “تلاعباً” قليلاً هو تكييف المنهجية التي وصفها @simon في هذا المنشور: Automatically login via SSO - #4 by simon
- تفعيل إعداد “السماح لجميع مسارات العودة عبر SSO”.
- إضافة إطار iframe مخفي في صفحتي، يقوم بتحميل
https://discourse.example.com/session/sso?return_path=path_to_mypage.html. - عندما يكون المستخدم مسجلاً الدخول (بدون تفاعل، حيث أن المستخدم قد سجّل الدخول بالفعل عبر SSO إلى التطبيق في الصفحة الأصلية) ويتم إعادة توجيه الـ iframe إلى
mypage.html، يمكنه التواصل مع الصفحة الأصلية عبر postMessage() للإبلاغ بأن المستخدم قد سجّل الدخول إلى Discourse، مما يؤدي إلى تشغيل السكربت المدمج للموضوع في المنتدى.
لا يزال هذا لا يبدو الحل المثالي، لأنه سيولد رحلات ذهاب وإياب إضافية (العملية المذكورة أعلاه ضرورية فقط إذا لم يكن المستخدم مسجلاً الدخول إلى Discourse بالفعل).
يبدو لي أن الحل المثالي سيكون إذا كان من الممكن somehow الحفاظ على عنوان URL المرجعي للصفحة المضمنة عند إعادة توجيهها عبر SSO.
تعديل: قمت بتنفيذ “الحيلة” المحسّنة الموصوفة أعلاه في هذا المنشور، وعلى الأقل يمكنني القول إنها تعمل بشكل أفضل بكثير من الحيلة الأصلية التي وصفتها في المنشور الأصلي.