مرحبًا،
نحاول نشر منتديات Discourse في وضع الإنتاج. نحن نستخدم مزوّد OAuth خاص بنا، وبالتالي نستخدم إضافة discourse-oauth2-basic لتمكين ذلك.
نواجه الخطأ التالي عند تسجيل الدخول باستخدام مزوّد OAuth المخصص:
“فشل المصادقة! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | تم اكتشاف CSRF”
بعد بعض التصحيح، اتضح أن “omniauth.state” مفقود في الجلسة بعد حدوث إعادة التوجيه، مما يجعل من المستحيل التحقق من حقل الحالة في /auth/oauth2_callback. نرحب بأي مساعدة.
ملاحظة: يعمل الإعداد بالكامل بشكل صحيح في وضع التطوير.
مرحبًا @david، نحن نقوم بتشغيل Discourse باستخدام حاويات Docker. ملف Docker الذي نستخدمه هو discourse_docker/image/base at master · discourse/discourse_docker · GitHub. نظرًا لعدم وجود سكريبت لبدء تشغيل Discourse داخل حاوية Docker، فقد أضفنا سكريبت بدء صغير يقوم بترجمة الكود مسبقًا وبدء تشغيل Discourse.
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake assets:precompile
RAILS_ENV=production bundle exec rails server --binding=0.0.0.0
للأسف، من الصعب جدًا علينا تقديم دعم للمجتمع هنا للتركيبات المخصصة. يرجى محاولة إعداد Discourse باستخدام الدليل الرسمي. إذا لم تتمكن من القيام بذلك، فقد يتمكن شخص ما في قناة Marketplace من المساعدة مقابل رسوم.