我有 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。但是,该会话在 Chrome 隐身模式下不起作用。我无法从浏览器控制台看到任何会话,并且无法正确重定向。但我确实看到会话已正确存储在数据库中。这是因为隐身模式在重定向到第三方网站或其他网站后会阻止会话吗?