Django 使用者認證元件
阿新 • • 發佈:2018-11-11
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): ifrequest.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