1. 程式人生 > >Django 用戶認證組件

Django 用戶認證組件

也不會 lse 後端 接受 功能 標識 對象 一個用戶 ack

auth模塊

# 創建超級用戶
python manage.py createsuperuser
from django.contrib import auth

django.contrib.auth中提供了許多方法:

authenticate()

提供了用戶認證功能,即驗證用戶名以及密碼是否正確,一般需要username 、password兩個關鍵字參數。

如果認證成功(用戶名和密碼正確有效),便會返回一個 User 對象。

authenticate()會在該 User 對象上設置一個屬性來標識後端已經認證了該用戶,且該信息在後續的登錄過程中是需要的。

from
django.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 用戶認證組件