python+Django(6)—cookie&session字段

背景

最近在編寫一個(gè)django課程教務(wù)系統(tǒng)达传,涉及到多頁面帶登錄態(tài)的相互跳轉(zhuǎn),故記錄哈實(shí)戰(zhàn)過程中一些收獲劳吠。

實(shí)戰(zhàn)收獲

利用cookie字段判斷用戶是否已經(jīng)登錄

1.http協(xié)議本身是"無狀態(tài)"的引润,服務(wù)器需要借助于cookie和session字段來記錄客戶端的訪問狀態(tài),即保持登錄態(tài)

2.cookie是將一段文本保存在客戶端(瀏覽器或本地電腦)的一種技術(shù)痒玩,可長時(shí)間保存淳附。用戶首次通過客戶端訪問服務(wù)器時(shí),服務(wù)器會(huì)給客戶端發(fā)送一小段信息蠢古,客戶端需要將這段信息以cookie的形式保存在本地某個(gè)目錄的文件內(nèi)奴曙。

3.cookie的缺點(diǎn)在于不可靠和不安全:

1)瀏覽器可能不會(huì)保存服務(wù)器的cookie(依用戶習(xí)慣選擇)

2)cookie是有生命周期的(通過Expire設(shè)置)

3)http數(shù)據(jù)是明文發(fā)送,容易受到攻擊草讶,不能存放敏感數(shù)據(jù)洽糟;而且由于cookie是存放在文件中,可隨便修改

js代碼:

$.get(url, {'username': username, 'password':password}, function(data){

var data=JSON.parse(data);

if (data.errorCode==0){? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

location.href= "{% url 'Mypage:homepage' %}"? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//后端完成用戶名和密碼校驗(yàn)無誤后堕战,重定向到homepage主頁? ? ? ? ? ? ? ?

}

else{

alert(data.errorsList);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //后端校驗(yàn)用戶名或者密碼有誤坤溃,直接彈窗提示錯(cuò)誤信息

}

})

views.py代碼【設(shè)置cookie】

response.set_cookie("username", username)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//設(shè)置cookie字段

username = request.COOKIES.get('username')? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//獲取cookie,獲取用戶發(fā)來請求中的cookie字段

利用session字段判斷用戶是否已經(jīng)登錄

session功能與應(yīng)用場景與cookie類似践啄,但由于數(shù)據(jù)是存儲(chǔ)在服務(wù)器上浇雹,會(huì)比cookie安全,就算用戶關(guān)閉了瀏覽器屿讽,session依舊可以保持到會(huì)話過期昭灵。

Session工作的流程如下:

1)客戶端向服務(wù)器發(fā)送請求時(shí),看本地是否有cookie文件伐谈。如果有烂完,就在HTTP的請求頭(Request Headers)中,包含一行cookie信息

2)服務(wù)器接收到請求后诵棵,根據(jù)cookie信息抠蚣,得到sessionId,根據(jù)sessionId找到對應(yīng)的session履澳,用這個(gè)session就能判斷出用戶是否登錄

js代碼:

$.get(url, {'username': username, 'password':password}, function(data){

var data=JSON.parse(data);

if (data.errorCode==0){? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

location.href= "{% url 'Mypage:homepage' %}"? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//后端完成用戶名和密碼校驗(yàn)無誤后嘶窄,重定向到homepage主頁? ? ? ? ? ? ? ?

}

else{

alert(data.errorsList);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //后端校驗(yàn)用戶名或者密碼有誤怀跛,直接彈窗提示錯(cuò)誤信息

}

})

views.py代碼【設(shè)置session】

request.session['is_login'] ='true'

request.session['username'] = username? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //將username寫入session,存入服務(wù)器

username = request.session.get('username')? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //獲取session中username

ps.鏈接重定向可用response = HttpResponseRedirect('/user/index/')

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柄冲,一起剝皮案震驚了整個(gè)濱河市吻谋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌现横,老刑警劉巖漓拾,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異戒祠,居然都是意外死亡骇两,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門姜盈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來低千,“玉大人,你說我怎么就攤上這事贩据《安伲” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵饱亮,是天一觀的道長。 經(jīng)常有香客問我舍沙,道長近上,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任拂铡,我火速辦了婚禮壹无,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘感帅。我一直安慰自己斗锭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布失球。 她就那樣靜靜地躺著岖是,像睡著了一般。 火紅的嫁衣襯著肌膚如雪实苞。 梳的紋絲不亂的頭發(fā)上豺撑,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音黔牵,去河邊找鬼聪轿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛猾浦,可吹牛的內(nèi)容都是我干的陆错。 我是一名探鬼主播灯抛,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼音瓷!你這毒婦竟也來了对嚼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤外莲,失蹤者是張志新(化名)和其女友劉穎猪半,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偷线,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡磨确,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了声邦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乏奥。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖亥曹,靈堂內(nèi)的尸體忽然破棺而出邓了,到底是詐尸還是另有隱情,我是刑警寧澤媳瞪,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布骗炉,位于F島的核電站,受9級(jí)特大地震影響蛇受,放射性物質(zhì)發(fā)生泄漏句葵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一兢仰、第九天 我趴在偏房一處隱蔽的房頂上張望乍丈。 院中可真熱鬧,春花似錦把将、人聲如沸轻专。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽请垛。三九已至,卻和暖如春递览,著一層夾襖步出監(jiān)牢的瞬間叼屠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工绞铃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留镜雨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像荚坞,于是被迫代替她去往敵國和親挑宠。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354