Сессия Django не работает в режиме инкогнито в Chrome

У меня есть 3 таких вида:

def download_file(request, doc):
    if not request.session.get('is_authenticated'):
        return redirect(f"{reverse('pingfed_auth')}?next={request.get_full_path()}")
    return downloadfile(doc)

def pingfed_auth(request):
    original_url = request.GET.get('next') or 'home'
    request.session['original_url'] = original_url
    return redirect('Some third party authentication')

def redirect_pingfed_auth(request):
    if request.method == 'POST':
        request.session['is_authenticated'] = True
        request.session['username'] = get_username_from_saml(request.POST.get('SAMLResponse'))
        return redirect(request.session['original_url'] if 'original_url' in request.session else 'home') 

Где pingfed_auth запускает аутентификацию, а redirect_pingfed_auth - URL обратного вызова из этой трехсторонней аутентификации. Однако сессия не работает в режиме инкогнито в хроме. Я не вижу никакой сессии в консоли браузера, и я не могу правильно получить редирект. Но я вижу, что сессия правильно сохраняется в базе данных. Это потому, что режим инкогнито блокирует сессию после перенаправления на сторонний сайт или что-то еще?

enter image description here

В режиме инкогнито он блокирует third-party куки, если ваш поток аутентификации опирается на cookies, которые считаются «сторонними», то есть - (куки, установленные доменами, отличными от вашего собственного, во время процесса аутентификации), эти куки могут быть заблокированы. Это может привести к тому, что сессия не будет распознана после обратного перенаправления от стороннего провайдера аутентификации.

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