Django自定義登入驗證類

2021-08-20 01:53:08 字數 966 閱讀 8085

1.首先在views檢視函式內引入

from django.contrib.auth import authenticate

from django.contrib.auth.backends import modelbackend#

q表示查詢條件

from django.db.models import q

modelbackend即為要重寫的驗證登入類

2.authenticate會自自動呼叫重寫的類

user = authenticate(request=request,username=email,password=password)
3.重寫登入類

class custombackend(modelbackend): 

def authenticate(self, request, username=none, password=none, **kwargs):

try:

# 可以通過email\mobile....賬號進行賬號登入

user = userprofile.objects.get(q(email=username)|q(mobile=username))

# check_password 驗證使用者的密碼是否正確

if user.check_password(password):

return user

else:

return none

except exception as e:

return none

4.settings裡面配置

authentication_backends = (

'login.views.custombackend',

)

django 自定義登入驗證邏輯

本文的django view採用的是基於cbv的模式 django中的登入功能主要涉及到django.contrib.auth這個包,它提供了2個重要的函式 authenticate和login。這個函式接受的乙個收集引數,但至少需要接受username和password這兩個關鍵引數,它完成以下的...

django 自定義登入驗證邏輯

本文的django view採用的是基於cbv的模式 django中的登入功能主要涉及到django.contrib.auth這個包,它提供了2個重要的函式 authenticate和login。這個函式接受的乙個收集引數,但至少需要接受username和password這兩個關鍵引數,它完成以下的...

Django 自定義標籤

模版是乙個用django模版語言標記過的python字串。模版可以包含模版標籤和變數。模版標籤是在乙個模版裡起作用的標記。比如,乙個模版標籤可以產生控制結構的內容 if或者for 可以獲取資料庫內容或者訪問其它模版標籤。乙個標籤塊被包圍 變數標籤被 包圍 context是乙個傳遞給模版的key va...