أواجه مشكلة مشابهة لتلك المذكورة في نهاية هذا الموضوع: https://meta.discourse.org/t/configuring-google-login-for-discourse/15858/205، ولكن في حالتي، يقول الخطأ الصادر من Google إن URI في الطلب هو النسخة HTTP من موقعي، ورغم أنني أجبرت الموقع على استخدام HTTPS، إلا أن هذا هو العنوان الذي قمت بتكوينه في Google. موقع Discourse الخاص بي خلفي وراء خادم Apache، وقد تم إعداد Apache لإعادة توجيه عناوين URL من HTTP إلى HTTPS، كما أن إعداد force_https مفعل في إعدادات Discourse.
هل فهمي صحيح بأن خطأ Google يشير إلى أن Discourse يرسل عنوان HTTP بدلاً من HTTPS لإعادة التوجيه على الرغم من تفعيل force_https؟ هل هناك إعداد آخر يمكنني تفعيله لتغيير ذلك؟
لقد حاولت إضافة عنوان URL الخاص بـ HTTP إلى إعدادات العميل في Google، وقد سمح لي ذلك بالوصول إلى مرحلة اختيار حساب Google وإصدار التفويض، ولكن عند إعادة التوجيه إلى موقعي، تظهر الرسالة: “عذرًا، حدث خطأ أثناء تفويض حسابك. ربما لم توافق على التفويض؟”. يحتوي سجل الأخطاء على هذا الخطأ: “(google_oauth2) فشل المصادقة! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | تم اكتشاف CSRF”. يبدو إذن أن مصادقة Google تعتبر إعادة التوجيه من عنوان HTTP إلى عنوان HTTP محاولة تزوير.
أرى خطأً مشابهًا في السجل الخاص بمصادقة GitHub، وهو (redirect_uri_mismatch)، مما يشير إلى أنه ربما يرسل عنوان HTTP لإعادة التوجيه هناك أيضًا.
هل لديكم أي اقتراحات؟