Почему я получил "http://~" в качестве параметра url перенаправления, хотя я установил "https://~" в LOGIN_REDIRECT_URL в mozilla-django-oidc?

Я пытался интегрировать приложение Django с Keycloak с помощью mozilla-django-oidc и решить проблему, о которой говорится в заголовке.

Я настроил LOGIN_REDIRECT_URL и необходимые конфигурации в settings.py


LOGIN_REDIRECT_URL = "https://~"

и подготовленный шаблон Django.


{% if request.user.is_authenticated %}
\<p\>Current user: {{ request.user.email }}\</p\>
\<form action="{{ url('oidc_logout') }}" method="post"\>
{{ csrf_input }}
\<input type="submit" value="logout"\>
\</form\>
{% else %}
\<a href="{{ url('oidc_authentication_init') }}"\>Login\</a\>
{% endif %}

Однако я нажал на ссылку Login, после чего получил сообщение об ошибке, в котором говорится о недействительном url перенаправления, поскольку параметр url перенаправления был изменен на http://~.

Я просмотрел код mozilla-django-oidc, и мне показалось, что там нет функции, меняющей "https://~" на "http://~" как параметр url редиректа, а я установил "https://~" в LOGIN_REDIRECT_URL, так что может быть что-то не так с обратным прокси, которым в моем случае является Istio. Я ничего не настраивал самостоятельно до сих пор.

В случае использования Ngnix, эта проблема может быть решена как это.

Я бы хотел, чтобы вы ответили, в чем причина проблемы и как ее устранить.

Вернуться на верх