# Несоответствие URI перенаправления в Google Auth

**URL:** https://meta.discourse.org/t/redirect-uri-mismatch-in-google-auth/123152
**Category:** Support
**Created:** [17.Июль.2019 03:27:44 UTC](https://meta.discourse.org/t/redirect-uri-mismatch-in-google-auth/123152 "2019-07-17T03:27:44Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![RobinD42](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/robind42/32/148868_2.png) [@RobinD42](https://meta.discourse.org/u/RobinD42)
#### Post date: [17.Июль.2019 03:27:44 UTC](https://meta.discourse.org/t/redirect-uri-mismatch-in-google-auth/123152/1 "2019-07-17T03:27:44Z")

</div>

У меня возникла проблема, похожая на ту, что в конце этой темы: [Configure Google login for Discourse - #205](https://meta.discourse.org/t/configuring-google-login-for-discourse/15858/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.

Есть какие-либо предложения?

---

<div class="post-metadata">

### Author: ![RobinD42](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/robind42/32/148868_2.png) [@RobinD42](https://meta.discourse.org/u/RobinD42)
#### Post date: [17.Июль.2019 04:06:55 UTC](https://meta.discourse.org/t/redirect-uri-mismatch-in-google-auth/123152/2 "2019-07-17T04:06:55Z")

</div>

Решено! 😂 🕺

На случай, если кто-то ещё столкнётся с этой проблемой, решение найдено здесь: [[HELP] Cannot login, error shows "BAD CSRF" - #25 by daxen](https://meta.discourse.org/t/help-cannot-login-error-shows-bad-csrf/52424/25)

Я добавил следующее:

```plaintext
RequestHeader set X-Forwarded-Proto "https"

```

в конфигурацию виртуального хоста для SSL-сайта, чтобы заголовок `X-Forwarded-Proto` передавался в Discourse.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [16.Август.2019 04:07:03 UTC](https://meta.discourse.org/t/redirect-uri-mismatch-in-google-auth/123152/3 "2019-08-16T04:07:03Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
