Django Azure Сессия выхода из системы

Есть ли формальный способ выйти из сессии Django + Azure AD B2C?

При нажатии на кнопку "Выход" происходит перенаправление на страницу выхода по умолчанию.

После этого нажатие кнопки "log back in" или просто ввод домашней страницы в url возвращает пользователя на домашнюю страницу, поскольку сеанс Azure на самом деле не завершен.

Использование django-oidc-provider + mozilla-django-oidc пакетов.

Azure App Config Front Channel URL: https://my-site:myport/admin/logout

Settings.py

OIDC_SESSION_MANAGEMENT_ENABLE = True
OIDC_UNAUTHENTICATED_SESSION_MANAGEMENT_KEY = 'test'
OIDC_OP_LOGOUT_URL_METHOD = "testmodule.auth.logout"

функция выхода из системы

def logout(request):
    print("custom logout request reached") **# Never Reached**

    # I'm not sure if this is the correct token to be accessing
    id_token = str(request.COOKIES['csrftoken'])
    id_token_hint = f'id_token_hint={id_token}'


    redirect_url = "https://login.windows.net/my-tenant-id/oauth2/v2/logout?"
    redirect_url = redirect_url + id_token_hint + "&post_logout_redirect_uri=" + request.build_absolute_uri("/admin/logout/")


    print(f'redirect_url: {redirect_url}')
    return redirect_url

urls.py

class LogoutView(OIDCLogoutView):
    print("LogoutView Reached")

    def get(self, request):
        print("Get Call") **# Never Reached**
        return self.post(request)

    def post(self, request):
        print("Post Call") **# Never Reached**
        """Log out the user."""
        logout_url = self.redirect_url

        #if request.user.is_authenticated:
        print("Reached Authenticated") **# Never Reached**
        # Check if a method exists to build the URL to log out the user
        # from the OP.
        logout_from_op = self.get_settings('OIDC_OP_LOGOUT_URL_METHOD', '')
        if logout_from_op:
            logout_url = import_string(logout_from_op)(request)

        # Log out the Django user if they were logged in.
        auth.logout(request)

        return HttpResponseRedirect(logout_url)



url_patterns = [
    ...
    path('admin/logout/', LogoutView.as_view(), name='logout'),
    ...
]
Вернуться на верх