欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

rest_framework認(rèn)證源碼分析

認(rèn)證源碼分析

位置 :

APIVIew----》dispatch方法---》self.initial(request, *args, **kwargs)---->有認(rèn)證,權(quán)限,頻率三個版塊

在漢陽等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計制作、網(wǎng)站制作 網(wǎng)站設(shè)計制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,成都全網(wǎng)營銷,成都外貿(mào)網(wǎng)站建設(shè),漢陽網(wǎng)站建設(shè)費用合理。

分析:

只讀認(rèn)證源碼: self.perform_authentication(request)---》
self.perform_authentication(request)就一句話:request.user,需要去drf的Request對象中找user屬性(方法)---》
Request類中的user方法,剛開始來,沒有_user,走 self._authenticate()

核心:Request類的 _authenticate(self):

1.在需要進(jìn)行認(rèn)證的視圖類中添加(認(rèn)證類是自己寫的類,該類繼承了BaseAuthentication):

2.此時apiview里的 authentication_classes就變成了自己第一步在視圖函數(shù)類里定義的了,而不會去自己的配置文件里找

3.然后正常執(zhí)行到apiview里的dispatch方法:

4.dispatch方法內(nèi)部又調(diào)用了initialize_request方法,返回了一個新的request對象

5.authenticators這個的值是get_authenticators()方法的返回值:返回值是一個個自己定義的繼承了BaseAuthentication類的認(rèn)證類對象

6.Request類中的authenticators變成了自定義類的對象

7.在繼續(xù)走apiview里的dispatch方法里的initial方法

8.進(jìn)入認(rèn)證模塊的方法

9.進(jìn)入新封裝request對象里

10.核心_authenticate方法

def _authenticate(self):
    # self是Request對象,所以去Request對象里找authenticators,
    # 最后self.authenticators的結(jié)果就是一個列表,列表里面是一個個自定義認(rèn)證類的對象
    for authenticator in self.authenticators:
        try:
            # 此時authenticator就是認(rèn)證類的對象,對象調(diào)用了authenticate方法,這個方法是需要我們在認(rèn)證類里重新寫的
            # 這個方法有兩個返回值
            user_auth_tuple = authenticator.authenticate(self)
        except exceptions.APIException:
            self._not_authenticated()
            raise

        if user_auth_tuple is not None:
            self._authenticator = authenticator
            # 這兩個返回值給了Request對象,就是request.user和request.auth(這就是為什么要求自己重新寫的authenticate方法要有兩個返回值了)
            self.user, self.auth = user_auth_tuple
            return

    self._not_authenticated()

網(wǎng)站名稱:rest_framework認(rèn)證源碼分析
地址分享:http://chinadenli.net/article44/dsogdhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計公司、外貿(mào)網(wǎng)站建設(shè)、建站公司、微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站