2014-11-13 33 views
7

我想將用戶憑證安全地存儲在iOS鑰匙串中,但我只希望用戶能夠使用他們的指紋來檢索鑰匙串項目。是否有一個調用Touch ID傳感器來檢索Keychain項目的工作流程,能夠解除密碼解鎖或根本不退回密碼?有沒有辦法在iOS密鑰鏈中使用Touch ID,但不提示輸入用戶密碼?

我已經實現了在觸摸ID和鑰匙串上的WWDC會話中定義的方法,但我不想像他們在演示中那樣回退設備密碼。我希望用戶在指紋掃描失敗後一直登錄。

回答

0

無法在Keychain TouchID集成中禁用使用密碼的回退機制。

+0

幸運的是,這已在iOS 9中解決。順便說一句,非常感謝你真棒KeychainAc cess庫! =) – skozin

4

@kishikawa-katsumi是正確的,在iOS 8中沒有辦法禁用密碼後備。 kSecAccessControlUserPresence訪問控制標誌可以在Touch ID或Passcode認證之後訪問某個項目,甚至不需要Touch ID即可使用。

但是這已經在iOS 9中得到了改進。兩個Touch ID相關的標誌,kSecAccessControlTouchIDAnykSecAccessControlTouchIDCurrentSet,have been added

所以,你需要鑰匙串項創建訪問控制對象時(與SecAccessControlCreateWithFlags功能),使用這兩個標誌,而該對象與SecItemAdd功能加入項目時分配給kSecAttrAccessControl屬性。

an example from Apple這說明了這一點;見addTouchIDItemAsync方法。

另見this post對其他安全相關的更改iOS中的審覈9.

5

可以使用localizedFallbackTitle財產

LAContext *myContext = [[LAContext alloc] init]; 
myContext.localizedFallbackTitle = @"sign in traditionally"; 

定製「輸入密碼」按鈕,如果你想刪除的回退按鈕,只需設置像這樣的屬性

myContext.localizedFallbackTitle = @""; 
相關問題