perf: 修改 csrf 登录时判断

pull/11360/head
ibuler 2023-08-18 20:36:58 +08:00
parent 1d25cad449
commit 89a5c970e4
2 changed files with 7 additions and 4 deletions

View File

@ -140,13 +140,16 @@ class UserLoginContextMixin:
if not self.request.GET.get('csrf_failure'):
return context
http_origin = self.request.META.get('HTTP_ORIGIN')
http_referer = self.request.META.get('HTTP_REFERER')
if not http_referer:
http_origin = http_origin or http_referer
if not http_origin:
return context
try:
referer = urlparse(http_referer)
context['error_origin'] = str(referer.netloc)
origin = urlparse(http_origin)
context['error_origin'] = str(origin.netloc)
except ValueError:
pass
return context

View File

@ -92,5 +92,5 @@ class ResourceDownload(TemplateView):
def csrf_failure(request, reason=""):
from django.shortcuts import reverse
login_url = reverse('authentication:login') + '?csrf_failure=1'
login_url = reverse('authentication:login') + '?csrf_failure=1&admin=1'
return redirect(login_url)