У меня возникла проблема, похожая на ту, что в конце этой темы: Configure Google login for Discourse - #205. Однако в моём случае ошибка от Google гласит, что URI в запросе — это http-версия моего сайта, хотя я принудительно использую https, и именно этот адрес я настроил в Google. Мой сайт Discourse работает за прокси-сервером Apache, который настроен на перенаправление http-URL в https, и в настройках Discourse включена опция force_https.
Правильно ли я понимаю, что ошибка Google указывает на то, что Discourse отправляет http-адрес вместо https для перенаправления, несмотря на включённую опцию force_https? Есть ли какая-то другая настройка, которую можно включить, чтобы исправить это?
Я пытался добавить http-URL в конфигурацию клиента в Google, и это позволило мне дойти до этапа выбора аккаунта Google и авторизации, но при перенаправлении обратно на мой сайт появляется сообщение: «Извините, произошла ошибка при авторизации вашей учётной записи. Возможно, вы не подтвердили авторизацию?». В логе ошибок есть следующая запись: «(google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected». Похоже, что Google-авторизация помечает перенаправление с http-адреса обратно на http-адрес как попытку подделки.
Я также вижу похожую ошибку в логе при авторизации через GitHub (redirect_uri_mismatch), поэтому, похоже, там тоже отправляется http-адрес для redirect_api.
Есть какие-либо предложения?