瀏覽器清空cookie快捷鍵:ctrl+shift+delete,cookie中包含csrf認證信息
獲取Cookie
request.COOKIES['key']
request.COOKIES.get['key']
request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)(簽名cookie,在設置時進行了簽名加密)
參數:
default: 默認值
salt: 加密鹽
max_age: 后台控制過期時間
設置Cookie
rep = HttpResponse(...)
rep = render(request, ...)
rep = redirect( ...)
rep.set_cookie(key,value,...)
rep.set_signed_cookie(key,value,salt='加密鹽', max_age=None, ...)(簽名cookie)
return rep
參數:
key, 鍵
value='', 值
max_age=None, 超時時間
expires=None, 超時時間(IE requires expires, so set it if hasn't been already.)
path='/', Cookie生效的路徑,/ 表示根路徑,特殊的:根路徑的cookie可以被任何url的頁面訪問
domain=None, Cookie生效的域名
secure=False, https傳輸
httponly=False 只能http協議傳輸,無法被JavaScript獲取(不是絕對,底層抓包可以獲取到也可以被覆蓋)
刪除Cookie
def logout(request):
rep = redirect("/login/")
rep.delete_cookie("user") # 刪除用戶瀏覽器上之前設置的usercookie值
return rep
cookie設置參數
class HttpResponseBase:
def set_cookie(self, key, 鍵
value='', 值
max_age=None, 超長時間 ,有效事件,max_age=20意思是這個cookie20秒后就消失了,默認時長是2周,這個是以秒為單位的
cookie需要延續的時間(以秒為單位)
如果參數是\ None`` ,這個cookie會延續到瀏覽器關閉為止。
expires=None, 超長時間,值是一個datetime類型的時間日期對象,到這個日期就失效的意思,用的不多
expires默認None ,cookie失效的實際日期/時間。
path='/', Cookie生效的路徑,就是訪問哪個路徑可以得到cookie,'/'是所有路徑都能獲得cookie
瀏覽器只會把cookie回傳給帶有該路徑的頁面,這樣可以避免將 cookie傳給站點中的其他的應用。
/ 表示根路徑,特殊的:根路徑的cookie可以被任何url的頁面訪問
domain=None, Cookie生效的域名
你可用這個參數來構造一個跨站cookie。
如, domain=".example.com"
所構造的cookie對下面這些站點都是可讀的:www.example.com 、 www2.example.com 和.other.sub.domain.example.com 。
如果該參數設置為 None ,cookie只能由設置它的站點讀取。
secure=False, 如果設置為 True ,瀏覽器將通過HTTPS來回傳cookie。
httponly=False 只能http協議傳輸,無法被JavaScript獲取(不是絕對,底層抓包可以獲取到也可以被覆蓋)
): pass