Django 用戶認證組件
阿新 • • 發佈:2018-11-11
也不會 lse 後端 接受 功能 標識 對象 一個用戶 ack
auth模塊
# 創建超級用戶 python manage.py createsuperuser
from django.contrib import auth
django.contrib.auth中提供了許多方法:
authenticate()
提供了用戶認證功能,即驗證用戶名以及密碼是否正確,一般需要username 、password兩個關鍵字參數。
如果認證成功(用戶名和密碼正確有效),便會返回一個 User 對象。
authenticate()會在該 User 對象上設置一個屬性來標識後端已經認證了該用戶,且該信息在後續的登錄過程中是需要的。
fromdjango.contrib.auth import authenticate user = authenticate(username="user",password="pwd")
login(HttpRequest, user)
該函數接受一個HttpRequest對象,以及一個認證了的User對象;該函數實現一個用戶登錄的功能。它本質上會在後端為該用戶生成相關session數據。
from django.contrib.auth import authenticate, login def log_in(request): if request.method == "POST": user = request.POST.get("username") pwd = request.POST.get("password") user = authenticate(username=user, password=pwd) if user is not None: login(request, user) # Redirect to a success page ... else:# Return an "invalid login" error message. ... return render(request, "login.html")
logout(request) 註銷用戶
該函數接受一個HttpRequest對象,無返回值。當調用該函數時,當前請求的session信息會全部清除。該用戶即使沒有登錄,使用該函數也不會報錯。
from django.contrib.auth import logout def log_out(request): logout(request) # Redirect to a success page.
1
Django 用戶認證組件