我想限制未經身份驗證的用戶的所有頁面。我寫了以下中間件:
from django.shortcuts import redirect
def require_login(get_response):
def middleware(request):
if request.user.is_authenticated:
response = get_response(request)
return response
return redirect('/login/')
return middleware
問題是它在重定向到登錄頁面時也會重定向到我的登錄頁面(希望你明白了)。所以它不斷地重定向到我的登錄頁面。我需要怎么做?是否可以檢查請求的頁面是否為登錄頁面,然后不要檢查上面的 if 陳述句。謝謝!
uj5u.com熱心網友回復:
檢查request.path
,如果它等于您的登錄 URL,則回傳常規回應
from django.shortcuts import redirect
def require_login(get_response):
def middleware(request):
if request.user.is_authenticated or request.path == '/login/':
response = get_response(request)
return response
return redirect('/login/')
return middleware
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/468566.html