Django REST 프레임워크의 인증 권한 프로세스 소스 분석
https://www.jianshu.com/p/a0741a463422
다음은 내가 총괄한 대략적인 절차로 간략하게 요약한 것이다.
django url as_view , rest_framework/views.py dispatch , request , view :
urlpatterns = [
url(
r"^test/?", testView.as_view(),
)]
testView APIView View :
class TestView(APIView):
authentication_classes = (
BasicAuthentication,
SessionAuthentication,
TokenAuthentication,
)
permission_classes = (
IsAuthenticated,
)
def get(self,request):
pass
get as_view dispatch ,dispatch request.Method
get ,url->
dispatch
self.as_view()
||
vv
def dispatch(request,*args,**kwargs):
||
VV
self.initial(request,*args,**kwargs):
||
VV
self.perform_authentication
self.check_permissions
self.check_throttles
:
perform_authentication(request)
request.user
request.user @property
self._authenticate()
_authenticate(self) authenticator.authenticate(self)
self.authenticators ? authentication_classes , view rest_framework/views.py APIView 。
BasicAuthentication authenticate , , request.user, request.user user ,
user api
user = authenticate(**credentials)
||
vv
user = backend.authenticate(**credentials)
authenticate django authenticate :
||
vv
, !!!
self.check_permissions(self,request):
, self.permission_denied, dispatch
, response。
, API , ?
cookie session
큰 손으로 가볍게 뿌리고 남겨 두었다가 나중에 준비해 두시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.