[IOS開發(fā)]指紋登錄(TouchID)集成方案——邏輯設(shè)計(jì)和實(shí)現(xiàn)

TouchID 指紋識別是IPhone 5s設(shè)備新增的一項(xiàng)重大功能,用于數(shù)據(jù)加密和安全。而在IOS 8.0 以后也向第三方開放了相應(yīng)功能API,我們可以利用這個(gè)API做相應(yīng)的用戶驗(yàn)證和登錄的功能,省去輸入密碼的環(huán)節(jié),提高登錄的用戶體驗(yàn)。

TouchID

App集成TouchID的效果


TouchID 登錄成功

TouchID API


官方文檔
https://developer.apple.com/library/ios/documentation/LocalAuthentication/Reference/LAContext_Class/index.html

API比較簡單,在IOS 8 以上的app 包中,添加Libraries:LocalAuthentication Framework,有以下兩個(gè)方法

  1. canEvaluatePolicy
    監(jiān)測設(shè)備是否支持TouchID,返回BOOL,并且若不支持,則在error里面返回相應(yīng)狀態(tài)

  2. evaluatePolicy
    TouchID驗(yàn)證狀態(tài),在block里面返回驗(yàn)證狀態(tài)(BOOL)和error;

從官方API看出,僅僅提供TouchID的支持狀態(tài)和驗(yàn)證狀態(tài)(BOOL),并不提供關(guān)于本設(shè)備或本app任何可關(guān)聯(lián)的信息,所以集成TouchID還需自行設(shè)計(jì)關(guān)聯(lián)和流程,才能實(shí)現(xiàn)指紋登錄的功能,否則只驗(yàn)證TouchID,對于需在app中登錄賬號,并沒什么作用。

邏輯設(shè)計(jì)


設(shè)備綁定

在設(shè)備第一次使用指紋登錄之前,必須先登錄原有的賬號(app注冊賬號),進(jìn)行設(shè)備(用戶)綁定。圖1所示

  1. 開啟:在app登錄后,在“用戶信息-安全”,點(diǎn)擊開啟“指紋登錄”;
  2. 驗(yàn)證TouchID:檢測當(dāng)前設(shè)備是否支持TouchID,若支持則發(fā)起TouchID驗(yàn)證;
  3. 生成設(shè)備賬號/密碼:TouchID驗(yàn)證通過后,根據(jù)當(dāng)前已登錄的賬號和硬件設(shè)備Token,生成設(shè)備賬號/密碼(規(guī)則可自定,密碼要長要復(fù)雜),并保存在keychain;
  4. 綁定:生成設(shè)備賬號/密碼后,將原賬號及設(shè)備賬號/密碼,加密后(題主使用的是RSA加密)發(fā)送到服務(wù)端進(jìn)行綁定;
  5. 成功:驗(yàn)證原賬號及設(shè)備賬號有效后,返回相應(yīng)狀態(tài),綁定成功則完成整個(gè)TouchID(設(shè)備)綁定流程。
圖1:TouchID 綁定/解除綁定
設(shè)備(指紋)登陸

在設(shè)備(用戶)綁定之后,并且用戶賬號退出后,可以使用指紋登錄,若當(dāng)前設(shè)備未綁定,則不會出現(xiàn)“指紋登錄”按鈕。圖2所示

  1. TouchID登錄:在用戶登錄界面,點(diǎn)擊“指紋登錄”;
  2. 驗(yàn)證TouchID:檢測當(dāng)前設(shè)備是否支持TouchID,若支持則發(fā)起TouchID驗(yàn)證;
  3. 登錄:讀取app在本機(jī)的設(shè)備賬號/密碼,調(diào)用設(shè)備登錄接口,發(fā)起登錄請求;
  4. 成功:驗(yàn)證設(shè)備賬號/密碼后,返回相應(yīng)狀態(tài),登錄成功則完成整個(gè)TouchID登錄流程。
    圖2:TouchID 驗(yàn)證

*在設(shè)備(用戶)綁定之后,并且當(dāng)前正處于登錄狀態(tài),也可以將本設(shè)備取消綁定,流程基本與綁定流程雷同,不再重復(fù)。

小結(jié)


TouchID API 非常簡單,僅僅對本設(shè)備的TouchID進(jìn)行驗(yàn)證,但如果需要在app集成相應(yīng)的 “設(shè)備登錄/驗(yàn)證”功能或其他TouchID 的應(yīng)用,則需自行設(shè)計(jì)關(guān)聯(lián)和綁定流程(例如在本app中使用的關(guān)聯(lián):設(shè)備Token、生成設(shè)備賬號/密碼、app包名/版本),綁定之后,才能使用TouchID 進(jìn)行驗(yàn)證和應(yīng)用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容