我正在用登錄表單製作iOS應用程序(Obj-c)。我試圖找出是否有辦法使用Touch ID登錄。這對我的應用來說將是一個驚人的功能,但我找不到一種方法來實現它。 在最近的PayPal更新中,它們包括Touch ID登錄 - 所以有辦法做到這一點。登錄iOS的觸摸ID
編輯:我知道如何得到,如果用戶輸入正確的觸摸ID,但我不知道該怎麼做後。 如果用戶輸入他的用戶名,然後正確添加Touch ID,該怎麼辦?我怎麼知道這個用戶有這個Touch ID?
我正在用登錄表單製作iOS應用程序(Obj-c)。我試圖找出是否有辦法使用Touch ID登錄。這對我的應用來說將是一個驚人的功能,但我找不到一種方法來實現它。 在最近的PayPal更新中,它們包括Touch ID登錄 - 所以有辦法做到這一點。登錄iOS的觸摸ID
編輯:我知道如何得到,如果用戶輸入正確的觸摸ID,但我不知道該怎麼做後。 如果用戶輸入他的用戶名,然後正確添加Touch ID,該怎麼辦?我怎麼知道這個用戶有這個Touch ID?
好吧首先創建一個動作,像這樣:
我們需要更詳細的艱難,因爲我不知道你指的OBJ-C或SWIFT,我就張貼兩者。
對象 -
首先導入本地認證框架
#import <LocalAuthentication/LocalAuthentication.h>
然後我們創建一個IBAction爲,並添加以下代碼:
- (IBAction)authenticateButtonTapped:(id)sender {
LAContext *context = [[LAContext alloc] init];
NSError *error = nil;
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:@"Are you the device owner?"
reply:^(BOOL success, NSError *error) {
if (error) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"There was a problem verifying your identity."
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
return;
}
if (success) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success"
message:@"You are the device owner!"
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
} else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"You are not the device owner."
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
}
}];
} else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Your device cannot authenticate using TouchID."
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
}
}
剛剛連接您的IBAction將提示認證的按鈕。
但是在斯威夫特你可以使用:
添加以下框架到您的項目:LocalAuthentication 然後將其導入您的快捷文件:
import LocalAuthentication
然後創建下面的方法會提示你使用touch id:
func authenticateUser() {
// Get the local authentication context.
let context = LAContext()
// Declare a NSError variable.
var error: NSError?
// Set the reason string that will appear on the authentication alert.
var reasonString = "Authentication is needed to access your notes."
// Check if the device can evaluate the policy.
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &error) {
[context .evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: reasonString, reply: { (success: Bool, evalPolicyError: NSError?) -> Void in
if success {
}
else{
// If authentication failed then show a message to the console with a short description.
// In case that the error is a user fallback, then show the password alert view.
println(evalPolicyError?.localizedDescription)
switch evalPolicyError!.code {
case LAError.SystemCancel.rawValue():
println("Authentication was cancelled by the system")
case LAError.UserCancel.rawValue():
println("Authentication was cancelled by the user")
case LAError.UserFallback.rawValue():
println("User selected to enter custom password")
self.showPasswordAlert()
default:
println("Authentication failed")
self.showPasswordAlert()
}
}
})]
}
else{
// If the security policy cannot be evaluated then show a short message depending on the error.
switch error!.code{
case LAError.TouchIDNotEnrolled.rawValue():
println("TouchID is not enrolled")
case LAError.PasscodeNotSet.rawValue():
println("A passcode has not been set")
default:
// The LAError.TouchIDNotAvailable case.
println("TouchID not available")
}
// Optionally the error description can be displayed on the console.
println(error?.localizedDescription)
// Show the custom alert view to allow users to enter the password.
self.showPasswordAlert()
}
}
最後從func viewDidLoad調用函數就像這樣:authenticateUser()
希望有所幫助。繼續編碼。
來源: 斯威夫特: App Coda iOS 8 Touch ID Api
的Objective-C: tutPlus iOS Touch ID
感謝馬特·洛根爲更新的SWIFT代碼。
感謝您的回答,但我想使用指紋進行登錄。如果指紋是正確的,我該怎麼辦?讓用戶輸入該用戶名? –
只需在其中快速記錄他的if成功方法。例如,務必輸入他的用戶名和密碼,或者提供所需的視圖控制器。 –
或者obj-c代碼的if成功方法 –
我想我明白我必須做什麼! 第一個用戶登錄後,我將保存他的密碼(例如在NSUserdefaults)。
如果用戶想在下次登錄時使用他的Touch ID--我會問他Touch ID,如果是正確的,我會讓他在開始時保存密碼。
感謝朱利安:)
想想第一次登錄。你在錯誤的軌道上 –
歡迎你。如果您感到高興,請接受我的回答正確,以便其他人在面臨同樣問題時可以看到它。很高興我可以幫助:-) –
還有一件事,如果你的應用程序包含一些用戶特定的數據,那麼它會創建問題區分用戶特定的數據,只有基於觸摸ID的登錄 –
http://code.tutsplus.com/tutorials/ios-8-integrating-touch-id--cms-21949 – luk2302
試試這個:HTTP://www.sitepoint。 com/integrate-touch-id-ios-app/ – itsji10dra
這不是我正在尋找的。這很清楚 - 我可以使用觸摸ID來查找這是設備所有者,但我想使用用戶Touch ID作爲LOGIN。 –