لقد قمت بإعداد Discourse على جهازي المحلي وأردت إعداد تسجيل الدخول عبر SSO. يمكنني إعادة توجيه المستخدم عند النقر على تسجيل الدخول، ولكن عندما تتم إعادة توجيهي، أستمر في تلقي الأخطاء. لقد قمت بتمكين التسجيل أيضًا، ويقول: Nonce is incorrect, was generated in a different browser session, or has expired
أدناه ملف Python الذي أستخدمه: Discourse-setup/main.py at main · kamleshjoshi8102/Discourse-setup · GitHub
يرجى ملاحظة أنه في حالتي، يعمل على المنفذ 4201، لذلك قمت بإعادة التوجيه إلى المنفذ 4201 عند تسجيل الدخول.
def nonce_valid?
if SiteSetting.discourse_connect_csrf_protection
nonce && @secure_session[nonce_key].present?
else
nonce && Discourse.cache.read(nonce_key).present?
end
end
إنها تتحقق من أن الـ nonce تم إنشاؤه بواسطة Discourse لنفس الجلسة التي تعيد توجيه المستخدم مرة أخرى إلى Discourse.
يمكنك محاولة تعيين إعداد الموقع discourse_connect_csrf_protection إلى false. القيمة الافتراضية هي true. إنه إعداد موقع مخفي، لذا لا يمكن تعطيله إلا من وحدة تحكم Rails.
عند تمكين discourse_connect_csrf_protection، يضمن هذا الإعداد أن تتم عملية المصادقة SSO بأكملها من خلال عمليات إعادة توجيه المتصفح. إذا كنت تبدأ عملية المصادقة عن طريق إجراء طلب خلفي إلى session/sso، فستحتاج إلى تعطيله. المزيد من التفاصيل هنا: DiscourseConnect flow no longer functions - #5 by david.