登陸校驗(yàn):輸入用戶名密碼、點(diǎn)擊發(fā)送驗(yàn)證碼,輸入驗(yàn)證碼,點(diǎn)擊登陸,校驗(yàn)全部正確則登陸成功。點(diǎn)擊獲取驗(yàn)證碼需要校驗(yàn)1、2、3、4,點(diǎn)擊登陸校驗(yàn)5
1.校驗(yàn)用戶。
1)后臺(tái)獲取頁(yè)面的用戶名、密碼,獲取redis中的用戶名密碼錯(cuò)誤次數(shù)、賬號(hào)狀態(tài)。 ?
2)根據(jù)用戶名查找用戶,如果該用戶的狀態(tài)=1,并且redis中該賬號(hào)狀態(tài)為2,說明該賬號(hào)解鎖了,清空redis中的賬號(hào)狀態(tài)和用戶名密碼錯(cuò)誤次數(shù) ?
3)更具用戶名密碼(MD5加密)查找用戶信息,判斷用戶名密碼是否正確,是不是機(jī)構(gòu)用戶、是否有效(無(wú)效有兩種:無(wú)效、鎖定)。用戶名密碼錯(cuò)誤連續(xù)次數(shù)超過5次,鎖定賬號(hào)(將用戶的status置為2)。主要先獲取redis中的錯(cuò)誤次數(shù),如果為空,表示第一次,提示1;當(dāng)<5時(shí),次數(shù)累加1;否則鎖定賬號(hào),提示相應(yīng)的信息。
2.校驗(yàn)機(jī)構(gòu)。
? 1)獲取用戶的機(jī)構(gòu)id,用戶登陸的ip
? 2)判斷機(jī)構(gòu)是否有效、是否添加該系統(tǒng)服務(wù)、機(jī)構(gòu)的狀態(tài)(注銷、未審核等等)、ip是否在范圍內(nèi)。
3.校驗(yàn)手機(jī)號(hào)
? 1)獲取該用戶的手機(jī)號(hào),判斷手機(jī)號(hào)是否為空。
2)獲取redis中賬號(hào)狀態(tài)。如果該用戶的狀態(tài)=1,并且redis中該賬號(hào)狀態(tài)為2,說明該賬號(hào)解鎖了,清空redis中的賬號(hào)狀態(tài)和該賬號(hào)的發(fā)送驗(yàn)證碼次數(shù) ?
3)redis中的發(fā)送驗(yàn)證碼次數(shù)為null,第一次發(fā),設(shè)置驗(yàn)證碼5分鐘失效在redis中,設(shè)置發(fā)送次數(shù)為124小時(shí)失效在redis中,設(shè)置用戶名密碼2小時(shí)失效在redis中;發(fā)送次數(shù)<6(24小時(shí)之內(nèi)),同上,次數(shù)+1;否則,鎖定賬號(hào)
4.調(diào)用短信接口 ?
1)參數(shù):賬號(hào)、短信內(nèi)容、手機(jī)號(hào)、流水號(hào)。賬號(hào)和私鑰由數(shù)據(jù)平臺(tái)提供,短信內(nèi)容里需要生成一個(gè)6位的驗(yàn)證碼,流水號(hào)生產(chǎn)一個(gè)18為以內(nèi)的隨機(jī)數(shù)。 ?
2)參數(shù)按照字母先后順序排序,用私鑰簽名好之后生成驗(yàn)簽。url地址拼接。?
3)調(diào)用接口,返回?cái)?shù)據(jù)的處理。
5.校驗(yàn)用戶名密碼驗(yàn)證碼 ?
1)獲取redis中的這三個(gè)參數(shù),如果為空,說明該用戶沒有獲取過驗(yàn)證碼。 ?
2)感覺上面說到的方法判斷該用戶是否解鎖,需要清空redis中的用戶名密碼錯(cuò)誤次數(shù)、驗(yàn)證碼錯(cuò)誤次數(shù)。 ?
3)判斷redis中的用戶名密碼和現(xiàn)在頁(yè)面獲取的是否相等,不相等說明用戶名密碼錯(cuò)誤,需要進(jìn)行用戶名密碼錯(cuò)誤次數(shù)處理以及鎖定賬號(hào)(<5)。
4)判斷redis中的驗(yàn)證碼和現(xiàn)在頁(yè)面獲取的是否相等,不相等說明驗(yàn)證碼錯(cuò)誤,需要進(jìn)行驗(yàn)證碼錯(cuò)誤次數(shù)處理以及鎖定賬號(hào)(<5)。 ?
5)登陸成功需要清空redis中的用戶名密碼錯(cuò)誤次數(shù)、驗(yàn)證碼