1. 程式人生 > >Django 使用者認證元件

Django 使用者認證元件

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