Django 중간부품 차단 로그인하지 않은 URL
@login_required(login_url='/user/login/')
def homepage(request):
pass
이런 방법은 프로그램에서 로그인 차단이 필요한 몇 개의 URL에만 적합하다.
2. 중간부품 기술로 로그인하지 않은 URL을 차단
2.1 settings에서.py MIDDLEWARE 설정 추가:middleware.LoginCheckMiddleware
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
# url
'middleware.LoginCheckMiddleware',
]
2.2 프로젝트 디렉터리에middleware를 만듭니다.py 파일, 파일에 차단 클래스 만들기:LoginCheckMiddleware
import re
from django.http import JsonResponse
from django.shortcuts import HttpResponseRedirect
from django.utils.deprecation import MiddlewareMixin
class LoginCheckMiddleware(MiddlewareMixin):
def process_request(self, request):
# | url, , , None。
pattern = r'^(/$|/user/user/[0-9]+/$|/user/user/$|/user/getuserall|/user/get_token_code|/user/update_phone_no|/stock|/future)'
# request.path , 。
# , None
match = re.search(pattern, request.path)
# url
if match and not request.user.is_authenticated:
print(' URL >>: ', request.path)
#
if request.path == '/':
return HttpResponseRedirect('/user/login/')
# ajax
else:
return JsonResponse({'status': False, 'info': ' !'})
정규 표현식 필터를 사용하여 차단해야 할 URL을 필터합니다.
aax 요청이 방향을 바꿀 수 없기 때문에, aax 요청의 URL에 대해 json 데이터를 되돌려주는 것을 차단하고, 전방에서 처리한 결과를 되돌려줍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.