Избегайте перенаправления Google oauth на localhost при вызове с публичного сервера с помощью обратного прокси-сервера nginx + настройки докера - PullRequest
0 голосов
/ 27 марта 2019

Я создаю технический блог со следующей инфраструктурой:

Client <---domain.tld:80---> Nginx Reverse Proxy <---localhost:8001---> Docker container with Django web app

Я использую Gunicorn в качестве веб-сервера WSGI в моем контейнере.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я хочу включить аутентификацию Google для моего раздела комментариев и вызвать соответствующий URI для аутентификации (который равен http://domain.tld/auth/login/google-oauth2/),, я получаю следующую ошибку от Google:

URI перенаправления в запросе http://localhost:8001/auth/complete/google-oauth2/, не совпадает с авторизованным для клиента OAuth.

Итак, основная проблема в том, что Google считает, что я хочу, чтобы хост перенаправления был localhost, потому что мое приложение развернуто на localhost (и обслуживается только через мой обратный прокси-сервер в Интернете), но, конечно, мне нужно вместо этого быть domain.tld.

Я не нашел вариант, где я мог бы явно указать Google, куда должен быть перенаправлен трафик, я могу только авторизовать URI.

Конечно, я пытался разрешить локальный перенаправленный доступ, но, очевидно, это не помогло, потому что Google перенаправляет на локальный URI.

Мой код в основном основан на этом сообщении в блоге и на этом вопросе stackoverflow .

Поскольку это в основном вызов ссылки на URL с моего сервера, я думаю, что мой код вообще не должен быть таким полезным.

Я благодарен за любые полезные отзывы!

1 Ответ

0 голосов
/ 27 марта 2019

Вы можете использовать serveo (или аналогичный сервис - ngrok и т. Д.), Чтобы выставить свой локальный сервер и через него выполнить обратный вызов Google или другого поставщика oauth.

Вы также можете игнорировать эту проблему и войти через /admin в локальной среде.

...