أواجه مشكلة مع مصادقة Google. لدي مشروع في Google Cloud، وبعد التبديل إلى النطاق الجديد، قمت أيضًا بتغيير رابط إعادة التوجيه تحت معرف العميل (Client ID) هناك، لذا فهو مضبوط حاليًا على:
والآن المشكلة. عند محاولة “التسجيل عبر Google”، أواجه هذه الرسالة في Discourse:
https://forum.sugarmail.app/auth/failure?message=csrf_detected انتهت مهلة التفويض، أو أنك قمت بالتبديل إلى متصفح آخر. يرجى المحاولة مرة أخرى.
عندما كان المنتدى تحت النطاق القديم forum.skymail.app، كانت مصادقة Google تعمل دون أي مشاكل.
لقد قمت بتشغيل الأمر ./launcher rebuild app بعد تغيير النطاق، مع التأكد من تحديث النطاق في ملف app.yaml تحت DISCOURSE_HOSTNAME (في الواقع، لم يكن المنتدى يعمل على الإطلاق حتى قمت بذلك).
أوه، عذرًا، الأمر هو “إجبار HTTPS” الذي كنت قد أوقفته سابقًا.
لقد قمت بتفعيله مؤخرًا لتجنب ظهور تحذير في Chrome حول “محتوى صفحة غير آمن”، والذي كان يحدث بسبب وجود روابط صور باستخدام HTTP العادي.
للتأكيد، أقوم بإنهاء SSL في خادم nginx “الخارجي”، وبالنسبة لـ Discourse نفسه، فلا يوجد SSL.
عند تعطيل “إجبار HTTPS”، يعمل مصادقة Google مرة أخرى (كان علي إضافة رابط إعادة توجيه HTTP عادي في مشروع Google Cloud).
لكن هذا ليس جيدًا، لأنه ستظهر تحذيرات “موقع غير آمن” أو محتوى مختلط بمجرد وجود صور.
هل توجد طريقة للحفاظ على عمل مصادقة Google مع تفعيل “إجبار HTTPS” و إنهاء SSL خارج نطاق Discourse؟
(كنت سأستخدم دعم SSL الخاص بـ Discourse نفسه، لكنه يفترض أنه “يمتلك” النطاق، مما يتطلب مني إعداد عنوان IP إضافي لهذا الخادم الافتراضي الخاص (VPS) وفصل الموقع الرئيسي عن المنتدى… وهو ما يمثل بعض المتاعب…)