iOS 8 SDK向開發(fā)者公開了Touch ID指紋識別功能,允許App對用戶身份進行本地驗證蔚袍。使用Touch ID非常簡單栏豺,只需要2步即可:
- 檢查Touch ID是否可用。
- 獲得指紋驗證結果枕屉。
首先需要添加LocalAuthentication.framework庫,注意只有真機才有這個庫鲤氢,模擬器沒有搀庶。
#import <LocalAuthentication/LocalAuthentication.h>
LAContext *ctx = [[LAContext alloc] init];
NSError *error = nil;
NSString *myLocalizedReasonString = @"請輸入指紋";
// 判斷設備是否支持指紋識別
if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
NSLog(@"支持");
//提示:指紋識別只是判斷當前用戶是否是手機的主人!
[ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:myLocalizedReasonString reply:^(BOOL success, NSError *error) {
error = error;
NSLog(@"%d %@", success, error);
if (success) {
// 登錄成功
NSLog(@"登陸成功");
}else{
NSLog(@"%@",error.localizedDescription);
switch (error.code) {
case LAErrorSystemCancel:
{
NSLog(@"Authentication was cancelled by the system");
//切換到其他APP铜异,系統(tǒng)取消驗證Touch ID
break;
}
case LAErrorUserCancel:
{
NSLog(@"Authentication was cancelled by the user");
//用戶取消驗證Touch ID
break;
}
case LAErrorUserFallback:
{
NSLog(@"User selected to enter custom password");
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
//用戶選擇輸入密碼哥倔,切換主線程處理
}];
break;
}
default:
{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
//其他情況,切換主線程處理
}];
break;
}
}
}
}];
} else {
NSLog(@"不支持");
//不支持指紋識別揍庄,LOG出錯誤詳情
switch (error.code) {
case LAErrorTouchIDNotEnrolled:
{
NSLog(@"TouchID is not enrolled");
break;
}
case LAErrorPasscodeNotSet:
{
NSLog(@"A passcode has not been set");
break;
}
default:
{
NSLog(@"TouchID not available");
break;
}
}
NSLog(@"%@",error.localizedDescription);
}
指紋識別登陸就是這么簡單咆蒿。雖然本人尚未在項目中使用這個功能,但是在我實際開發(fā)過程中遇到過機器注冊大量刷單的情況蚂子,個人覺得在賬號密碼登錄之后需要指紋識別登陸沃测,能有效防止機器刷單。