Python Social Auth Изменить адрес реферера - PullRequest
0 голосов
/ 20 марта 2019

У меня есть шлюз приложений Azure (скажем, example.com), за которым у меня есть несколько служб приложений Azure (example1.com, example2.com и т. Д.).

Я использую социальную аутентификацию python для аутентификации моего приложения django. Проблема в том, что когда я нажимаю кнопку входа в систему с example.com, и он перенаправляет этот запрос на example1.com, запрос на вход в систему происходит с example1.com.

Если я укажу адреса обратного вызова OAuth как

example.com / complete / azuread-oauth2,

example1.com / complete / azuread-oauth2 и

example2.com / полная / azuread-oauth2,

это не работает, социальная аутентификация выдает мне ошибку:

raise AuthStateForbidden(self)
social_core.exceptions.AuthStateForbidden: Wrong state parameter given.

Это может быть связано с тем, что сайт реферера - example.com, а фактический запрос идет с example1.com, хотя я не уверен. Есть ли способ исправить это, чтобы перенаправление не происходило с example1.com, и я могу спрятать example1.com за example.com?

1 Ответ

1 голос
/ 21 марта 2019

Стратегия python-social-auth Django использует метод request.build_absolute_uri(...), который зависит от request.get_host(...) для получения текущего хоста, на который должен указывать URL.

Когда ваши настройки находятся за прокси-сервером (или ведут себя подобным образом), вам необходимо убедиться, что конечный сервер знает источник исходного хоста, чтобы установить правильный URL-адрес. Обратитесь к документации get_host(), в ней перечислены различные параметры, которые должны быть установлены, чтобы сделать это возможным.

...