TouchID 指紋識別是IPhone 5s設(shè)備新增的一項重大功能,用于數(shù)據(jù)加密和安全歧寺。而在IOS 8.0 以后也向第三方開放了相應(yīng)功能API,我們可以利用這個API做相應(yīng)的用戶驗證和登錄的功能龙致,省去輸入密碼的環(huán)節(jié)目代,提高登錄的用戶體驗榛了。
TouchID
App集成TouchID的效果
TouchID 登錄成功
TouchID API
官方文檔
API比較簡單霜大,在IOS 8 以上的app 包中战坤,添加Libraries:LocalAuthentication Framework途茫,有以下兩個方法
canEvaluatePolicy
監(jiān)測設(shè)備是否支持TouchID溪食,返回BOOL,并且若不支持边败,則在error里面返回相應(yīng)狀態(tài)
evaluatePolicy
TouchID驗證狀態(tài)笑窜,在block里面返回驗證狀態(tài)(BOOL)和error排截;
從官方API看出断傲,僅僅提供TouchID的支持狀態(tài)和驗證狀態(tài)(BOOL),并不提供關(guān)于本設(shè)備或本app任何可關(guān)聯(lián)的信息智政,所以集成TouchID還需自行設(shè)計關(guān)聯(lián)和流程续捂,才能實現(xiàn)指紋登錄的功能,否則只驗證TouchID劫拗,對于需在app中登錄賬號,并沒什么作用憔足。
邏輯設(shè)計
設(shè)備綁定
在設(shè)備第一次使用指紋登錄之前滓彰,必須先登錄原有的賬號(app注冊賬號)找蜜,進行設(shè)備(用戶)綁定。圖1所示
開啟:在app登錄后彰居,在“用戶信息-安全”撰筷,點擊開啟“指紋登錄”毕籽;
驗證TouchID:檢測當前設(shè)備是否支持TouchID,若支持則發(fā)起TouchID驗證溶握;
生成設(shè)備賬號/密碼:TouchID驗證通過后睡榆,根據(jù)當前已登錄的賬號和硬件設(shè)備Token胀屿,生成設(shè)備賬號/密碼(規(guī)則可自定宿崭,密碼要長要復雜),并保存在keychain才写;
綁定:生成設(shè)備賬號/密碼后葡兑,將原賬號及設(shè)備賬號/密碼奴愉,加密后(題主使用的是RSA加密)發(fā)送到服務(wù)端進行綁定;
成功:驗證原賬號及設(shè)備賬號有效后铁孵,返回相應(yīng)狀態(tài)锭硼,綁定成功則完成整個TouchID(設(shè)備)綁定流程。
圖1:TouchID 綁定/解除綁定
設(shè)備(指紋)登陸
在設(shè)備(用戶)綁定之后蜕劝,并且用戶賬號退出后檀头,可以使用指紋登錄,若當前設(shè)備未綁定岖沛,則不會出現(xiàn)“指紋登錄”按鈕暑始。圖2所示
TouchID登錄:在用戶登錄界面,點擊“指紋登錄”婴削;
驗證TouchID:檢測當前設(shè)備是否支持TouchID嗤朴,若支持則發(fā)起TouchID驗證;
登錄:讀取app在本機的設(shè)備賬號/密碼,調(diào)用設(shè)備登錄接口歧杏,發(fā)起登錄請求;
成功:驗證設(shè)備賬號/密碼后,返回相應(yīng)狀態(tài)沮协,登錄成功則完成整個TouchID登錄流程。
圖2:TouchID 驗證
*在設(shè)備(用戶)綁定之后,并且當前正處于登錄狀態(tài),也可以將本設(shè)備取消綁定,流程基本與綁定流程雷同座慰,不再重復。
小結(jié)
TouchID API 非常簡單,僅僅對本設(shè)備的TouchID進行驗證套腹,但如果需要在app集成相應(yīng)的 “設(shè)備登錄/驗證”功能或其他TouchID 的應(yīng)用熟尉,則需自行設(shè)計關(guān)聯(lián)和綁定流程(例如在本app中使用的關(guān)聯(lián):設(shè)備Token驳癌、生成設(shè)備賬號/密碼、app包名/版本),綁定之后衣摩,才能使用TouchID 進行驗證和應(yīng)用既琴。
文/tumg的LNMP_IOS小集(簡書作者)
原文鏈接:http://www.reibang.com/p/85689f7f183e