用戶認證auth模塊django
01.auth模塊
from django.contrib import authsession
<1>authenticate()
提供了用戶認證,即驗證用戶名以及密碼是否正確,通常須要username password兩個關鍵字參數
若是認證信息有效,會返回一個 User 對象,失敗返回None
user = authenticate(username='someone',password='somepassword')框架
<2>login(HttpRequest, user)
該函數接受一個HttpRequest對象,以及一個認證了的User對象
此函數使用django的session框架給某個已認證的用戶附加上session id等信息。
auth.login(request, user) # 必寫!!!!!request.user==當前登錄對象,全局使用函數
<3>logout(request) 註銷用戶
auth.logout(request) # 至關於request.session.flush()刪掉這次sessionui
02.User對象url
<1>user對象的 is_authenticated()
若是是真正的 User 對象,返回值恆爲 True 。 用於檢查用戶是否已經經過了認證。spa
<2>裝飾器@login_required
應用場景:
1 用戶登錄後才能訪問某些頁面,
2 若是用戶沒有登陸就訪問該頁面的話直接跳到登陸頁面
3 用戶在跳轉的登錄界面中完成登錄後,自動訪問跳轉到以前訪問的地址對象
from django.contrib.auth.decorators import login_required字符串
@login_required
def my_view(request):
...
若用戶沒有登陸,則會跳轉到django默認的 登陸URL '/accounts/login/ '
(這個值能夠在settings文件中經過LOGIN_URL = "/login/"進行修改)。
並傳遞 當前訪問url的絕對路徑 (登錄成功後,會重定向到該路徑)。get
<3>建立用戶create_user
使用 create_user 輔助函數建立用戶:
from django.contrib.auth.models import User
user = User.objects.create_user(username='',password='',email='')
<4>check_password(passwd)
用戶須要修改密碼的時候 首先要讓他輸入原來的密碼 ,
若是給定的字符串經過了密碼檢查,返回 True
<5>修改密碼
使用 set_password() 來修改密碼
user = User.objects.get(username='')
user.set_password(password='')
user.save