cookie,session,用戶認證組件

一. 繪畫跟蹤技術

  在客戶端與服務端的一次會務中,屢次的請求與相應,HTTP協議是無狀態協議,也就是說每一個請求都是獨立的!沒法記錄前一次請求的狀態。會話跟蹤技術即可以實現屢次回話間信息共享的做用,HTTP協議中可使用Cookie來完成會話跟蹤!在Web開發中,使用session來完成會話跟蹤,session底層依賴Cookie技術。 python

.cookie技術

  Cookie是瀏覽器的技術,當瀏覽器第一次訪問一個網站時,發送給服務端的是一個空的cookie,若是登陸成功了,服務器能夠向cookie的字典中插入值,之後在必定的時間內,瀏覽器訪問此服務端,都會帶着這個cookie字典.數據庫

Cookie語法:django

1.設置cookie

1 Obj=Httpresponse(「ok」)
2 Obj.set_cookie(「is_login」,True)
3 Obj.set_cookie(「username」,」amy」)  #不寫時間默認是兩週
4 Obj.set_cookie(「username」,」amy」,max_age=20) #讓瀏覽器20秒後清除cookie獲取cookie

2.獲取cookie

1 Request.COOKIES
2 獲得的是cookie字典{「is_login」:True,「username」:」amy」}
3 Request.COOKIES.get(「is_login」)
4 獲得的是True

3.刪除cookie

1 Response.delete_cookie("cookie_key",path="/",domain=name)

.session技術

  因爲cookie的信息暴露在客戶端,很是的不安全,並且數據量一但變大,會必定程度的影響速度,因此,出現了session,session是基於cookie,session是服務端技術瀏覽器

1.設置session

Request.session[「s_username」]=」amy」安全

這句話會作三件事:服務器

  生成一個隨機字符串做爲表中session-key字段的值cookie

  向表中django_session插入數據session

    Session-key session-datadom

    隨機字符串 加密後的{「s_username」:」amy」}函數

  向客戶端相應時,加上sessionid=剛剛生成的隨機字符創

2.獲取session

1 S_username=request.session[「s_username」]

3.刪除session

1 Del request.session[「s_username」]

4.Request.session.flush()

  (1) 找到鑰匙

  (2) Django session表中過濾出該記錄,並刪除

  (3) 刪除鑰匙

四. 用戶認證組件

視圖函數中要使用用戶認證組件須要引入auth模塊

From Django.contribute import auth

前提:必須使用組Django提供auth_user

插入命令:在manage.py中建立命令createsuperuser(python manage.py  createsuperuser)即爲向該表中插入記錄,經過此方式插入的密碼是加密的,直接在表中插入密碼不是加密的

 

1.數據庫中查詢數據是否存在(auth_user表中)

查詢成功返回用戶對象,查詢失敗返回none:

auth.authenticate(username=」amy」,password=123)

 

2.保存用戶狀態信息

auth.login(request,user_obj)

至關於:request.session["user_id"]=user.pk

保存後可使用request.user,代指當前登陸對象,沒有auth.login,默認是匿名對 ,requester.user是全局變量

 

3.刪除數據庫中的記錄,刪除鑰匙

auth.logout(request)

 

4.向auth_user表中插入數據用create_user接口,要先引入user

from Django.contrib.auth.models import User

User.objects.create_user(username=user,password=pwd)

 

5.重置密碼

user=User.objects.get(username=request.user.username)    user.set_password("666")    user.save()

相關文章
相關標籤/搜索