我想將用戶憑證安全地存儲在iOS鑰匙串中,但我只希望用戶能夠使用他們的指紋來檢索鑰匙串項目。是否有一個調用Touch ID傳感器來檢索Keychain項目的工作流程,能夠解除密碼解鎖或根本不退回密碼?有沒有辦法在iOS密鑰鏈中使用Touch ID,但不提示輸入用戶密碼?
我已經實現了在觸摸ID和鑰匙串上的WWDC會話中定義的方法,但我不想像他們在演示中那樣回退設備密碼。我希望用戶在指紋掃描失敗後一直登錄。
我想將用戶憑證安全地存儲在iOS鑰匙串中,但我只希望用戶能夠使用他們的指紋來檢索鑰匙串項目。是否有一個調用Touch ID傳感器來檢索Keychain項目的工作流程,能夠解除密碼解鎖或根本不退回密碼?有沒有辦法在iOS密鑰鏈中使用Touch ID,但不提示輸入用戶密碼?
我已經實現了在觸摸ID和鑰匙串上的WWDC會話中定義的方法,但我不想像他們在演示中那樣回退設備密碼。我希望用戶在指紋掃描失敗後一直登錄。
無法在Keychain TouchID集成中禁用使用密碼的回退機制。
@kishikawa-katsumi是正確的,在iOS 8中沒有辦法禁用密碼後備。 kSecAccessControlUserPresence
訪問控制標誌可以在Touch ID或Passcode認證之後訪問某個項目,甚至不需要Touch ID即可使用。
但是這已經在iOS 9中得到了改進。兩個Touch ID相關的標誌,kSecAccessControlTouchIDAny
和kSecAccessControlTouchIDCurrentSet
,have been added。
所以,你需要鑰匙串項創建訪問控制對象時(與SecAccessControlCreateWithFlags
功能),使用這兩個標誌,而該對象與SecItemAdd
功能加入項目時分配給kSecAttrAccessControl
屬性。
有an example from Apple這說明了這一點;見addTouchIDItemAsync
方法。
另見this post對其他安全相關的更改iOS中的審覈9.
可以使用localizedFallbackTitle
財產
LAContext *myContext = [[LAContext alloc] init];
myContext.localizedFallbackTitle = @"sign in traditionally";
定製「輸入密碼」按鈕,如果你想刪除的回退按鈕,只需設置像這樣的屬性
myContext.localizedFallbackTitle = @"";
幸運的是,這已在iOS 9中解決。順便說一句,非常感謝你真棒KeychainAc cess庫! =) – skozin