ولكن بعد النقر على زر التفويض، يتم إعادة توجيه المستخدم ويواجه هذه الرسالة على منتدانا:
ويظهر الخطأ في أعلى هذا الموضوع في سجلات المسؤول.
أشعر أنني قرأت وجربت كل شيء لإصلاح هذا، ولكنه لا يزال يحدث. لقد تأكدت من أن إعدادات موقع Discord Client ID و Secret صحيحة.
كما تأكدت من أن URI كان بالصيغة الصحيحة (بناءً على بعض المواضيع ذات الصلة التي رأيتها):
أعتقد (؟) أنني قصرت الأمر على مشكلة nginx و/أو التخزين المؤقت؟ هل من المفترض أن يكون هناك شيء خاص بالمصادقة أو خاص بـ CSRF محدد في discourse.conf قد نكون نغفل عنه؟
@merefield، @david، @sam - آسف للإزعاج ولكنني أرى أسماءكم في العديد من المناقشات القديمة المتعلقة بـ csrf في الماضي. هل لديكم أي توصيات لهذا؟ مع كون مصادقة Discord جزءًا لا يتجزأ من discourse، أنا في حيرة من أمري بشأن ما يمكن أن يسبب هذا.
لا زلت غير قادر على إيجاد نمط. في بعض الأحيان يعمل ويربطني بشكل صحيح، ولكن في أحيان أخرى أواجه صفحة csrf.
في الوقت الحالي، أشك في التحقق الأخير في verified_request?.
هل هناك أي طرق للتحقق بسهولة مما إذا كان (valid_request_origin? && any_authenticity_token_valid?) يُرجع true؟
أعتذر عن عدم وجود أي معلومات قابلة للتصحيح، لكن أعتقد أنني تمكنت من تحديد (على الأقل ما أعتقد أنه) المشكلة. لا أزال غير متأكد من الحل، لذا يرجى المتابعة
تُظهر الصور أدناه مثالاً متتاليًا حيث تمكنت من ربط حسابي بنجاح، وقمت بتحديث/تجربته مرة أخرى، وواجهت صفحة اكتشاف csrf بنجاح. كنت في نافذة متصفح متخفي ولم أفعل/أغير أي شيء حرفيًا بين الاتصال الناجح وفشل csrf. إليك ما وجدته:
لذلك تُظهر هذه الصورة الأولى تطابق ملف تعريف الارتباط _forum_session في رؤوس الطلبات 1 و 2، مما أدى إلى اتصال ناجح.
ولكن بعد تحديث الصفحة ومحاولة مرة أخرى (وفشل الاتصال)، يمكنك رؤية بحثي على اليسار يُظهر تكرارًا واحدًا فقط لملف تعريف الارتباط _forum_session في رأس الطلب عندما أدى إلى فشل.
باختصار: أنا متأكد من أن المشكلة تنبع من ملف تعريف الارتباط forum_session في رأس طلب discord?reconnect ثم رأس طلب callback? التالي غير المتطابق. ما الذي قد يسبب اختلافهما؟
هل تواجه هذا الخطأ في بيئتك الخاصة؟ أعتقد على أي حال أن هذا الخطأ يحتاج إلى أن ينظر فيه الفريق الأساسي. لقد أمضيت أسبوعين في تصحيح هذا ولم أجد إجابة بعد
تحليل رائع! يمكن أن يتسبب هذا النوع من حالات التسابق بالتأكيد في المشكلات التي تواجهها.
ومع ذلك، لم نتلق أي تقارير أخرى عن هذه المشكلة، لذا يبدو أنها يجب أن تكون شيئًا خاصًا بموقعك/تكوينك. ما هي الإضافات المثبتة على الموقع؟ هل يمكنك فتح استدعاء “التحديث” ورؤية الحمولة التي يتم إرسالها؟
أرى نمطًا يتضمن شبكة توصيل المحتوى ما الذي يمكن أن يكون خاطئ التكوين معه؟ أخبرني إذا كنت لا تزال بحاجة إلى قائمة بالمكونات الإضافية الخاصة بنا، فقد اعتقدت فقط أنني سأوفر هذا الرد من +1 صورة
بإحدى الإضافات لدينا!
بعد تعطيل الإضافة، وإجراء المزيد من الاختبارات، وإطلاق ناجح للميزة ذات الصلة للمجتمع… أعتقد أنني أستطيع القول بثقة أننا وجدنا الجاني.
بالنظر إلى الوراء، يبدو منطقيًا لماذا كانت هذه هي المشكلة، فالإضافة لا تزال معلمة على أنها تجريبية وليست مخصصة للمواقع الإنتاجية.
نظرًا لأنني قضيت أكثر من 3 أسابيع في تشخيص هذه المشكلة وأحتاج إلى العودة إلى المسار الصحيح مع مشاريع مجتمعنا الأخرى ، للأسف لن أتمكن من المساعدة في إيجاد حل لإضافة discourse-chat.
إذا قام شخص ما بدفع إصلاح للإضافة، فسننظر (على الأرجح ) في إعادة تمكين الإضافة على موقعنا، ولكن في الوقت الحالي نحتاج إلى وظيفة ربط حسابات مستقرة.
لقد قمت للتو بإنشاء طلب سحب لإصلاح في نواة Discourse:
السبب في إصلاحه بعد إزالة المكون الإضافي للدردشة هو أن الدردشة تستخدم واجهة برمجة تطبيقات ‘PresenceChannel’ هذه بكثافة، وبالتالي فإن المشكلة من المرجح أن تحدث. لا أعتقد أن أي تغييرات ستكون مطلوبة في الدردشة.
هل يجب أن يصلح هذا نفس المشكلة مع تسجيلات الدخول إلى جوجل؟ أحب المستخدمون في إحدى مثيلاتي حيث كنا نختبر إضافة الدردشة ذلك، لكنه كسر تسجيلات الدخول إلى جوجل بنفس الخطأ الذي واجهته تسجيلات الدخول إلى ديسكورد.