Django REST 프레임워크의 인증 권한 프로세스 소스 분석

3393 단어 DjangoRESTframework
한 편의 대신의 문장을 보았다.
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 APIViewBasicAuthentication     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

큰 손으로 가볍게 뿌리고 남겨 두었다가 나중에 준비해 두시오!

좋은 웹페이지 즐겨찾기