بصراحة، أنا مرتبك قليلاً بشأن كيفية ارتباط هذا الوصف لمشكلتك بالوصف السابق لمشكلة ناتجة عن وجود نموذجي تسجيل مختلفين في ووردبريس. لكن أعتقد أنه يمكنني مساعدتك هنا على الرغم من ذلك.
أحد الأشياء التي يجب فهمها هو أنه لا توجد طريقة (ولم تكن هناك طريقة أبدًا) لتسجيل الدخول فورًا إلى خدمتين مختلفتين على نطاقين مختلفين. كلما بدا أنك مسجل الدخول إلى الخدمة أ على النطاق أ، وعندما تنتقل إلى الخدمة ب على النطاق ب، تكون مسجلًا للدخول أيضًا، فإن ما حدث بالفعل هو أنك تم تسجيل دخولك إلى الخدمة ب عبر الخدمة أ مرة واحدة فقط عند زيارة النطاق ب وبدأت عملية تسجيل الدخول، وليس قبل ذلك.
شيء آخر يجب فهمه هو أنه، خارج السيناريو المحدد الذي تصفه حيث تريد إعادة توجيه شخص ما إلى مكان معين في التطبيق يتطلب جلسة، فإن معظم المستخدمين لا يهتمون، أو لا يلاحظون حقيقة أنهم بحاجة إلى النقر على “تسجيل الدخول” في الخدمة ب أحيانًا. في تجربتي في العمل مع العملاء على حلول الهوية، يكون مسؤولو مواقع الويب عادةً أكثر حساسية لهذا الأمر من مستخدميهم.
الطريقة التي تعمل بها هذه الأمور لم تتغير. كلما بدا أن المستخدم يسجل الدخول “تلقائيًا”، فإن ما يحدث بالفعل هو أنه يتم إعادة توجيهه مرة أخرى إلى ووردبريس ثم إعادة توجيهه مرة أخرى إلى Discourse بمجرد المصادقة على جلسته في ووردبريس. إذا كان المستخدم مسجل الدخول بالفعل في ووردبريس، فسيبدو أنه تم تسجيل دخوله “تلقائيًا” إلى Discourse حيث ستحدث هذه إعادة التوجيه دون الحاجة إلى قيام المستخدم بأي شيء.
إحدى الطرق التي يمكنك من خلالها تشغيل تسجيل الدخول “التلقائي”، وإعادة توجيههم إلى مكان معين في Discourse بعد تسجيل الدخول، هي استخدام المسار الذي شاركته بالفعل
https://community.showprowess.com/session/sso?return_path=[any path in Discourse]
إذا كان المستخدم مسجل الدخول بالفعل في ووردبريس، ولكنه لم يسجل الدخول بعد إلى Discourse عند استخدام عنوان URL هذا، فسيحدث ما يلي:
- يبدأ Discourse تلقائيًا عملية تسجيل الدخول لـ DiscourseConnect
- يتم إعادة توجيه متصفح المستخدم إلى ووردبريس
- المستخدم مسجل الدخول بالفعل، لذلك يتم إعادة توجيه المستخدم تلقائيًا مرة أخرى إلى Discourse
- إذا كان هناك قيمة
return_pathفي عنوان URL المستخدم في1، فسيتم إعادة توجيه المستخدم إلى هناك
من وجهة نظر المستخدم، سيرى متصفحه وهو يقوم بالتحميل لفترة وجيزة، ولكنه سيكون فعليًا مسجل الدخول “تلقائيًا” إلى Discourse وسيتم إعادة توجيهه إلى جزء معين من التطبيق.
لاحظ أنه يمكنك فعليًا جعل return_path أي عنوان URL، حتى نطاق منفصل، إذا قمت بتعيين إعداد الموقع discourse connect allows all return paths إلى صحيح.