驗(yàn)證登錄流程判斷邏輯
前端
賬戶名、密碼、驗(yàn)證碼 是否為空?
密碼是否符合規(guī)則(特殊字符、大小寫、數(shù)字、長(zhǎng)度..)
服務(wù)端
驗(yàn)證碼是否正確 (對(duì)應(yīng)時(shí)間戳是否過(guò)期)
賬戶是否存在 (未注冊(cè)、已注銷)
????????密碼是否正確? (記錄連續(xù)輸入錯(cuò)誤次數(shù),超過(guò)5次,賬號(hào)鎖定4小時(shí)?;蛱嵘?yàn)證等級(jí),采取賬號(hào)+密碼+驗(yàn)證碼+短信驗(yàn)證)
返回session、token

(1)web從FilManager服務(wù)獲取驗(yàn)證碼
(2)FilManager據(jù)wb 上傳的時(shí)間(長(zhǎng)度為 19 位數(shù)字,精確到微妙),生成驗(yàn)證碼
圖片,并記錄時(shí)間戳對(duì)應(yīng)的驗(yàn)證碼。
(3)web獲取用戶輸入的賬號(hào),密碼(md5加密),驗(yàn)證碼信息發(fā)行到login svr(今后
application svr 可能還會(huì)帶上用戶使用瀏覽器類型等用戶環(huán)境信息)。
(4),login svr通過(guò)時(shí)間(精確到微妙)獲取驗(yàn)證碼字符串。
(5)login svr根據(jù) web獲取的用戶信息動(dòng)態(tài)計(jì)算確定用戶的認(rèn)證等級(jí),如果為默認(rèn)認(rèn)證方式,驗(yàn)證賬號(hào),密碼,驗(yàn)證碼是否正確,如果正確返回驗(yàn)證成功以及相應(yīng)的 session ID; login svr還要在 redis 中記錄當(dāng)前用戶 session 對(duì)應(yīng)的信息,供鑒權(quán)服務(wù)使用
(6)如果 login svr動(dòng)態(tài)計(jì)算的用戶認(rèn)證級(jí)別高于默認(rèn)級(jí)別,則 login svr返回對(duì)應(yīng)的認(rèn)證級(jí)別,web需要根據(jù)返回的結(jié)果提升認(rèn)證級(jí)別,比如 OTP認(rèn)證等等
(7) login svr記錄用戶登入日志(包括但不限于地址等)
一、基本功能測(cè)試點(diǎn):
輸入正確的用戶名和密碼登錄成功
輸入錯(cuò)誤的用戶名密碼登錄失敗
用戶名正確,密碼錯(cuò)誤,是否提示輸入密碼錯(cuò)誤?
用戶名錯(cuò)誤,密碼正常,是否提示輸入用戶名錯(cuò)誤?
用戶名和密碼都錯(cuò)誤,是否有相應(yīng)提示?
用戶名密碼為空時(shí),是否有相應(yīng)提示?
如果用戶未注冊(cè),提示請(qǐng)先注冊(cè),然后進(jìn)行登錄
已經(jīng)注銷的用戶登錄失敗,提示信息友好?
密碼框是否加密顯示?
用戶名是否支持中文、特殊字符?
用戶名是否有長(zhǎng)度限制?
密碼是否支持中文,特殊字符?
密碼是否有長(zhǎng)度限制?
密碼是否區(qū)分大小寫?
密碼為一些簡(jiǎn)單常用字符串時(shí),是否提示修改?如:123456
密碼存儲(chǔ)方式?是否加密?
登錄功能是否需要輸入驗(yàn)證碼?
驗(yàn)證碼有效時(shí)間?
驗(yàn)證碼輸入錯(cuò)誤,登錄失敗,提示信息是否友好?
輸入過(guò)期的驗(yàn)證能否登錄成功?
驗(yàn)證碼是否容易識(shí)別?
驗(yàn)證碼換一張功能是否可用?
點(diǎn)擊驗(yàn)證碼圖片是否可以更換驗(yàn)證碼?
用戶體系:
比如系統(tǒng)分普通用戶、高級(jí)用戶,不同用戶登錄系統(tǒng)后可的權(quán)限不同。
如果使用第三方賬號(hào)(QQ,微博賬號(hào))登錄,那么第三方賬號(hào)與本系統(tǒng)的賬號(hào)體系對(duì)應(yīng)關(guān)系如何保存?首次登錄需要極權(quán)等
二、頁(yè)面測(cè)試:
登錄頁(yè)面顯示是否正常?文字和圖片能否正常顯示,相應(yīng)的提示信息是否正確,按鈕的設(shè)置和排列是否正常,頁(yè)面是否簡(jiǎn)潔壯觀等。
頁(yè)面默認(rèn)焦點(diǎn)是否定位在用戶名的輸入框中
首次登錄時(shí)相應(yīng)的輸入框是否為空?或者如果有默認(rèn)文案,當(dāng)點(diǎn)擊輸入框時(shí)默認(rèn)方案是否消失?
相應(yīng)的按鈕如登錄、重置等,是否可用;頁(yè)面的前進(jìn)、后退、刷新按鈕是否可用?
快捷鍵Tab,Esc,Enter?等,能否控制使用
兼容性測(cè)試:不同瀏覽器,不同操作系統(tǒng),不同分辨率下界面是否正常
三?、安全測(cè)試:
不登錄:瀏覽器中直接輸入登錄后的地址,看是否可以直接進(jìn)入
登錄成功后生成的Cookie,是否是httponly?(否則容易被腳本盜取)
用戶名和密碼是否通過(guò)加密的方式,發(fā)送給Web服務(wù)器
用戶名和密碼的驗(yàn)證,應(yīng)該是用服務(wù)器端驗(yàn)證,?而不能單單是在客戶端用javascript驗(yàn)證
用戶名和密碼的輸入框,應(yīng)該屏蔽SQL?注入攻擊
用戶名和密碼的的輸入框,應(yīng)該禁止輸入腳本?(防止XSS攻擊)
錯(cuò)誤登陸的次數(shù)限制(防止暴力破解)
考慮是否支持多用戶在同一機(jī)器上登錄;
考慮一用戶在多臺(tái)機(jī)器上登錄
四、性能測(cè)試:
單用戶登錄系統(tǒng)的響應(yīng)時(shí)間是否符合"3-5-8"原則
用戶數(shù)在臨界點(diǎn)時(shí)并發(fā)登錄是否還能符合"3-5-8"原則
壓力:大量并發(fā)用戶登錄,系統(tǒng)的響應(yīng)時(shí)間是多少?系統(tǒng)會(huì)出現(xiàn)宕機(jī)、內(nèi)存泄露、cpu飽和、無(wú)法登錄嗎?
穩(wěn)定性:?系統(tǒng)能否處理并發(fā)用戶數(shù)在臨界點(diǎn)以內(nèi)連續(xù)登錄N個(gè)時(shí)的場(chǎng)景?
五、兼容性測(cè)試
1.主流的瀏覽器(IE6,7,8,9,?Firefox,?Chrome,?Safari等)
2.不同的平臺(tái),比如Windows,?Mac
3.移動(dòng)設(shè)備上,比如Iphone,?Andriod
4.不同的分辨率能否正常顯示
六、其它測(cè)試:
連續(xù)輸入3次或以上錯(cuò)誤密碼,用記是否被鎖一定時(shí)間(如:15分鐘)?時(shí)間內(nèi)不允許登錄,超出時(shí)間點(diǎn)是否可以繼續(xù)登錄。
用戶session過(guò)期后,重新登錄是否還能重新返回這前session過(guò)期的頁(yè)面?
用戶名和密碼輸入框是事支持鍵盤快捷鍵?如:撤銷、復(fù)制、粘貼等等
是否允許同名用戶同時(shí)登錄進(jìn)行操作?考慮web和app同時(shí)登錄
手機(jī)登錄時(shí),是否先判斷網(wǎng)絡(luò)可用?
手機(jī)登錄時(shí),是否先判斷app存在新版本?
是否支持單點(diǎn)登錄?
是否有埋點(diǎn)接口