一、短信驗(yàn)證
驗(yàn)證方式有很多種:短信驗(yàn)證碼,郵箱驗(yàn)證,語音驗(yàn)證,圖片驗(yàn)證等等。其中短信驗(yàn)證,語音驗(yàn)證,郵箱驗(yàn)證都是需要用到第三方的API的,圖片驗(yàn)證可以用代碼生成。
二、短信驗(yàn)證的步驟以及做法
由于使用的是容聯(lián)的短信API,
1.在容聯(lián)官網(wǎng)上注冊(cè),實(shí)名驗(yàn)證,開通短信服務(wù),添加測(cè)試號(hào)碼(測(cè)試號(hào)碼外的號(hào)碼收不到短信)

2.根據(jù)官方提供的demo實(shí)例和文檔,下載jar包

3.將demo中的手機(jī)號(hào)換成自己的,以及里面的主賬號(hào)名稱和主賬號(hào)令牌,在你的對(duì)應(yīng)的名稱和令牌


三、代碼實(shí)戰(zhàn)
做一個(gè)用手機(jī)獲取驗(yàn)證碼登陸的頁面。
1.前臺(tái)將輸入的手機(jī)號(hào)傳到controller中
2.后臺(tái)接收到phone,將一個(gè)六位數(shù)的驗(yàn)證碼發(fā)送到phone的手機(jī)上(用一個(gè)簡單的生成六位隨機(jī)數(shù)的util生成隨機(jī)數(shù))
3.將發(fā)送的驗(yàn)證碼放到session中,返回給前端(不將前臺(tái)輸入的驗(yàn)證碼傳到后臺(tái)是因?yàn)?,傳到后臺(tái)話需要新加一個(gè)接口,這個(gè)接口獲取不到發(fā)送驗(yàn)證碼的接口中生成的驗(yàn)證碼,所以只能在前臺(tái)判斷。
4.前臺(tái)用ajax,驗(yàn)證輸入的驗(yàn)證碼和session中的驗(yàn)證碼是否一致,相同則表示驗(yàn)證碼正確,不同則不通過
四、session的生命周期
由于生成的驗(yàn)證碼是放在session中返回給前端的,這里就要知道session的生命周期
Session中的數(shù)據(jù)保存在服務(wù)器端,在客戶端需要的時(shí)候創(chuàng)建Session,在客戶端不需要的時(shí)候銷毀Session,使它不再占用服務(wù)器內(nèi)存。前面說了服務(wù)器并不管客戶端是否依然存在,因而它也無法確定客戶端什么時(shí)間不再使用它,但是如果在客戶端不再用的時(shí)候不及時(shí)銷毀Session的話,服務(wù)器很快就會(huì)內(nèi)存不足。為了解決這個(gè)問題,給Session加了一個(gè)生命周期,當(dāng)服務(wù)器發(fā)現(xiàn)Session超過了它的生命周期,就會(huì)釋放該Session所占用的內(nèi)存空間。
要了解Session首先要知道一個(gè)概念:Session的銷毀只有兩種情況:
第一:session調(diào)用了session.invalidate()方法.
第二:前后兩次請(qǐng)求超出了session指定的生命周期時(shí)間.
Session具有以下特點(diǎn):
(1)Session中的數(shù)據(jù)保存在服務(wù)器端;
(2)Session中可以保存任意類型的數(shù)據(jù);
(3)Session默認(rèn)的生命周期是20分鐘,可以手動(dòng)設(shè)置更長或更短的時(shí)間。
“我們相信人人都可以成為一個(gè)工程師,現(xiàn)在開始,找個(gè)師兄,帶你入門,掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷?!薄?/p>
這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學(xué)習(xí)路線,學(xué)習(xí)透明化,成長可見化,師兄1對(duì)1免費(fèi)指導(dǎo)??靵砼c我一起學(xué)習(xí)吧 !