日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Web請求認(rèn)證中限制用戶訪問有幾種方式?

在通常情況下,網(wǎng)站都會對用戶限制訪問,例如,未登錄的用戶不可訪問用戶中心界面。Djagno框架中使用request.user.is_authenticated屬性、裝飾器login_required和LoginRequiredMixin類三種方式限制用戶訪問。接下來,對這三種限制用戶訪問的方式進(jìn)行介紹。

成都創(chuàng)新互聯(lián)公司長期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為阜陽企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)阜陽網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

1.request.user.is_authenticated屬性

request.user.is_authenticated屬性用來判斷用戶是否通過驗(yàn)證,它是限制未登錄用戶訪問的原始方式,如果用戶未通過驗(yàn)證則跳轉(zhuǎn)到登錄頁面。示例代碼如下:

from django.conf import settings
from django.shortcuts import redirect
class UserInfoView(View):
    def get(self, reuqest):
        if not request.user.is_authenticated:
            return redirect('%s?next=%s' % (settings.LOGIN_URL,
                                                             request.path))

2.裝飾器login_required

裝飾器login_required用于在視圖層面限制用戶訪問,它有兩個參數(shù):login_url和redirect_field_name,其中參數(shù)login_url表示重定向地址,默認(rèn)為None;參數(shù)redirect_field_name表示重定向字段名稱,默認(rèn)值為“next”,該值保存了用戶成功驗(yàn)證時瀏覽器跳轉(zhuǎn)的重定向地址。

例如,若用戶未登錄,訪問用戶中心頁面(userinfo.html)時使網(wǎng)站跳轉(zhuǎn)到登錄頁,代碼如下:

@login_required(login_url='/login/',redirect_field_name='my_redirect')
def user_center(request):
    return render(request, 'userinfo.html')

裝飾器中通過login_url參數(shù)設(shè)置的重定向地址也可以在配置文件中通過LOGIN_URL項(xiàng)設(shè)置,示例如下:

LOGIN_URL = '/login/'

需要注意,參數(shù)login_url會優(yōu)先在裝飾器中查找設(shè)置的重定向地址,若未找到則使用在配置文件中設(shè)置的重定向地址。

3.LoginRequiredMixin類

使用LoginRequiredMixin類同樣可在視圖層面限制用戶訪問,該類的具體用法為:從django.contrib.auth.mixins模塊中引入LoginRequiredMxin,定義繼承LoginRequiredMxin類的類視圖,在其中設(shè)置重定向地址login_url,示例代碼如下:

from django.contrib.auth.mixins import loginRequiredMixin
class UserInfoView(LoginRequiredMxin, View):
    login_url = '/login/' # 設(shè)置重定向地址
    def get(self, request):
        return render('userinfo.html')

需要注意,LoginRequiredMixin類必須位于類視圖基類列表的最左側(cè)。此外,參數(shù)login_url與裝飾器login_required中參數(shù)login_url使用方式一致。


分享題目:Web請求認(rèn)證中限制用戶訪問有幾種方式?
URL分享:http://www.5511xx.com/article/cdisodc.html