django auth認證模組及Form元件

2021-09-21 02:01:20 字數 1732 閱讀 7107

request.user 物件就是django中的user表模型

以下使用的都是django自帶的user表

乙個登入註冊流程

以下都是偽**

建立乙個form

from django import forms

from django.contirb import auth

class checkloginform(forms.form):

"""required 該欄位是否必須

"""username=forms.charfield(required=true,max_length=12,min_length=6,

error_messages=)

password=forms.charfield(required=true,max_length=12,min_length=6,

error_messages=)

def clean(self):

判斷使用者名稱是否存在

try:

user.objects.get(username=self.clean_data.get('username'))

except:

# 裡面的username就是你的使用者輸入的那個input的提示資訊

raise validationerror()

密碼校驗-使用django自帶的

user=auth.authenticate(username=self.clean_data.get('username'),

password=self.clean_data.get('password'))

if not user:

raise validationerror()

self.clean_data['user']=user

return self.clean_data # self.clean_data 驗證成功返回的驗證資料

登入:def login(request)

if request.method=='post':

登入資料校驗 老辦法

username=request.post.get('username')

password=request.post.get('password')

........... # 然後進行一堆資料合法校驗性的操作

新辦法 不用寫那麼多if 使**功能邏輯分割更清晰

form=checkloginform(request.post) # 把post資料穿進去 返回乙個物件

# is_valid()返回true or false is_valid就是資料校驗可以理解為呼叫checkloginform的clean函式

if form.is_valid():

登入成功

# 這一步操作 --request.user=user---request.session['user_id']=改使用者在user表中的id

auth.login(self.clean_data.get('user'))

return render(request,'index.html') # render精華皆在request

def logout(request):

auth.logout(request)

make_password(password) 密碼加密

check_password(old_password,new_password) 校驗密碼是否相等

關於Django auth註冊登入模組的具體使用

1 from django.urls import path 2from import views 34 urlpatterns 5 主頁,用來顯示類別等其他資料 6 path views.index 7 登入8 path tologin views.tologin 9 註冊10 path regi...

Pam認證模組

pam 認證模組 pam 做認證的,nss 做使用者 像ldap lib64 security 所有pam模組都在這裡存放著。64位系統便是在 lib64存放著 etc pam.d pam服務的配置檔案。模組呼叫必須放在 lib64 security 這個目錄下。每個模組有 4個功能的認證 auth...

Shiro 認證模組

僅供參考。認證模組 該模組的核心物件是認證器authenticator,其唯一功能是完成token的認證。故authenticator介面中只定義了乙個方法 基於提交的token進行認證 authenticationinfo authenticate authenticationtoken auth...