分享人:吳志勇
視頻:https://v.qq.com/x/page/z0522os3by7.html
PPT:https://github.com/WuZhiyong1759/xiaoketangPPT/tree/master/XKT2017%E5%B9%B47%E6%9C%885%E6%97%A5PPT
1.背景介紹
我們?cè)谠L問(wèn)需要身份驗(yàn)證的網(wǎng)頁(yè)時(shí),通常在我們第一次訪問(wèn)該網(wǎng)站時(shí)需要登錄,后面我們?cè)俅卧L問(wèn)該網(wǎng)站時(shí),就能直接進(jìn)去了,這樣的功能是怎么實(shí)現(xiàn)的呢?
2.知識(shí)剖析
本次分享的內(nèi)容將涉及到以下三點(diǎn)內(nèi)容,
1.cookie
2.token
3.攔截器
3.常見(jiàn)問(wèn)題
http協(xié)議是無(wú)狀態(tài)的,那么是怎么實(shí)現(xiàn)記住密碼的?
4.解決方案
上網(wǎng)百度,一直是咋們修真院提倡的自學(xué)方式之一。
ps:作為網(wǎng)站的編寫(xiě)者,我們無(wú)從知道坐在電腦前的那個(gè)人是誰(shuí)。我們能夠知道的是,訪問(wèn)網(wǎng)站的是哪一臺(tái)電腦——這一點(diǎn)可以通過(guò)Cookie實(shí)現(xiàn)。因此,對(duì)用戶的識(shí)別實(shí)際上就是對(duì)客戶端電腦的識(shí)別。
簡(jiǎn)單的說(shuō),當(dāng)用戶第一次登錄網(wǎng)站的時(shí)候,網(wǎng)站向客戶端發(fā)送一個(gè)包含有用戶名的Cookie。當(dāng)用戶在之后的某個(gè)時(shí)候再次訪問(wèn),瀏覽器就會(huì)向網(wǎng)站服務(wù)器回送這個(gè)Cookie,于是,我們可以從這個(gè)Cookie中讀取到用戶名,然后調(diào)用登錄的方法,從而實(shí)現(xiàn)自動(dòng)為用戶登錄。
5.編碼實(shí)戰(zhàn)
springMVC中攔截器配置
控制器中添加cookIe
攔截器工具類
6.擴(kuò)展思考
除了cookie認(rèn)證方式實(shí)現(xiàn)自動(dòng)登錄外,還有哪些做法可以實(shí)現(xiàn)自動(dòng)認(rèn)證登錄?
web開(kāi)發(fā)中除了cookie常用session來(lái)做認(rèn)證登錄。
7.參考文獻(xiàn)
8.更多討論
如何在實(shí)現(xiàn)自動(dòng)登錄的情況下保障自己的賬密安全?
1、不要記住密碼
2、使用復(fù)雜的加密算法
3、使用強(qiáng)大唯一標(biāo)識(shí)符比如UUID等
問(wèn)題:
1、為什么加密生成的token的內(nèi)容是ID+當(dāng)前時(shí)間
答:因?yàn)檫@段代碼是當(dāng)時(shí)做任務(wù)時(shí)候?qū)懙模蝿?wù)當(dāng)中要求對(duì)ID+當(dāng)前時(shí)間進(jìn)行加密,所以這里的token內(nèi)容是ID+當(dāng)前時(shí)間,當(dāng)然實(shí)際開(kāi)發(fā)中,可根據(jù)自己實(shí)際的開(kāi)發(fā)需求,對(duì)自己存入cookie中的信息加密。
2、cookie的生存周期是怎么設(shè)定的
cookie聲明后,有這樣一個(gè)方法.setMaxAge(60*60*24)設(shè)置最大‘年齡’也就是設(shè)定最大有效時(shí)間,這里括號(hào)里邊的數(shù)據(jù)單位為秒,當(dāng)前設(shè)定的值表示cookie存在時(shí)間保留一天。
友情連接:IT修真院? ? ? ??IT修真院簡(jiǎn)書(shū)JAVA專題