iOS 지문 로그 인(Touch ID)통합 방안 상세 설명
알림:지문 인식 은 반드시 실제 컴퓨터 로 테스트 하고 iOS 8 이상 시스템 에서 해 야 합 니 다.
TouchID API 사용
1.헤더 파일 추가
#import
2.시스템 버 전 판단
//
if (NSFoundationVersionNumber < NSFoundationVersionNumber_iOS_8_0) {
NSLog(@" TouchID");
return;
}
3.LAPolicy여기 서 간단히 LAPolicy 를 소개 합 니 다.이것 은 매 거 진 것 입 니 다.우 리 는 자신의 필요 에 따라 LAPolicy 를 선택 합 니 다.이것 은 두 개의 값 을 제공 합 니 다.
LAPolicy DeviceOwner Authentication With Biometrics 와 LAPolicy DeviceOwner Authentication.
<1>.LAPolicy DeviceOwner Authentication With Biometrics 는 iOS 8 이상 을 지원 하 는 시스템 으로 이 장치 의 TouchID 를 사용 하여 검증 합 니 다.TouchID 인증 을 5 번 입력 하 는 데 실 패 했 을 때 TouchID 가 잠 겨 잠 금 후 장 치 를 잠 글 때 정확 한 잠 금 해제 암 호 를 입력 하여 TouchID 를 풀 수 있 습 니 다.
<2>.LAPolicy DeviceOwner Authentication 은 iOS 9 이상 을 지원 하 는 시스템 으로 이 장치 의 TouchID 나 장치 비밀 번 호 를 사용 하여 검증 합 니 다.TouchID 인증 을 5 번 입력 하 는 데 실패 하면 TouchID 가 잠 겨 장치 암호 페이지 를 터치 하여 검증 합 니 다.
4. canEvaluatePolicy
canEvaluate Policy 방법 으로 장치 가 TouchID 를 지원 하 는 지 판단 하고 BOOL 을 YES 로 되 돌려 줍 니 다.이 장 치 는 TouchID 를 지원 합 니 다.
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
error 는 인증 오류 코드 를 되 돌려 줍 니 다.구체 적 으로 설명 하지 않 습 니 다.5. evaluatedPolicyDomainState
context.evaluated Policy DomainState 는 장치 의 지문 이 변경 되 었 는 지 판단 하 는 데 사 용 됩 니 다.LAContext 가 생 성 되 었 을 때 evaluated Policy DomainState 가 효력 이 발생 합 니 다.TouchID 인증 이 성공 할 때 기록 하여 다음 에 TouchID 를 사용 할 때 검증 하고 안전성 을 높 일 수 있 습 니 다.
6. evaluatePolicy
evaluate Policy 방법 은 TouchID 를 검증 하 는 것 입 니 다.Block 리 셋 에서 success 가 YES 이면 검증 에 성공 하고 NO 검증 에 실 패 했 으 며 error 를 분석 합 니 다.
- (IBAction)loginButtonClick:(UIButton *)sender {
//
if (NSFoundationVersionNumber < NSFoundationVersionNumber_iOS_8_0) {
NSLog(@" TouchID");
return;
}
LAContext *context = [[LAContext alloc] init];
context.localizedFallbackTitle = @" ";
if (@available(iOS 10.0, *)) {
// context.localizedCancelTitle = @"22222";
} else {
// Fallback on earlier versions
}
NSError *error = nil;
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@" Home " reply:^(BOOL success, NSError * _Nullable error) {
if (success) {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"TouchID ");
});
}else if(error){
switch (error.code) {
case LAErrorAuthenticationFailed:{
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"TouchID ");
});
break;
}
case LAErrorUserCancel:{
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"TouchID ");
});
}
break;
case LAErrorUserFallback:{
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@" TouchID, ");
});
}
break;
case LAErrorSystemCancel:{
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"TouchID ( , , Home )");
});
}
break;
case LAErrorPasscodeNotSet:{
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"TouchID , ");
});
}
break;
case LAErrorTouchIDNotEnrolled:{
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"TouchID , TouchID");
});
}
break;
case LAErrorTouchIDNotAvailable:{
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"TouchID ");
});
}
break;
case LAErrorTouchIDLockout:{
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"TouchID ( TouchID , )");
});
}
break;
case LAErrorAppCancel:{
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@" ( App )");
});
}
break;
case LAErrorInvalidContext:{
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@" (LAContext )");
});
}
break;
default:
break;
}
}
}];
}else{
NSLog(@" TouchID");
}
}
위의 이 코드 는 전체 TouchID 의 핵심 이자 거의 모든 코드 입 니 다.검증 하 다.
검증 은 반드시 실제 컴퓨터 를 사용 해 야 한다.
결실
입력 오류
요약:TouchID 를 사용 하 는 것 은 어렵 지 않 습 니 다.중요 한 것 은 절차 논 리 를 사용 하 는 것 입 니 다.
로그 인 을 예 로 들 면 일반적으로 절 차 는 다음 과 같다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
View의 레이아웃 방법을 AutoLayout에서 따뜻한 손 계산으로 하면 성능이 9.26배로 된 이야기이 기사는 의 15 일째 기사입니다. 어제는 에서 이었습니다. 손 계산을 권하는 의도는 없고, 특수한 상황하에서 계측한 내용입니다 화면 높이의 10 배 정도의 contentView가있는 UIScrollView 레이아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.