swift

Biometric Authentication

motosw3600 2022. 8. 31. 18:12

Biometric Authentication(생체인증)

흔히 간단하게 로그인하거나 비밀번호를 입력해야할 경우 생체인증(Touch ID, Face ID)을 많이 사용한다.

생체인증에 대해 간단하게 구현해보려고 한다.

 

Local Authentication

생체인증을 사용하려면 LocalAuthentication Framework를 사용하여 구현한다.(iOS8이상부터 사용 가능)

LAContext(인증 정책 및 접근권한을 설정)을 사용하여 구현

 

evaluatePolicy(_  policy: LAPolicy, localizedReason: String, reply: @escaping (Bool, Error?) -> Void)

LAContext의 메서드로 policy정책과 인증메세지, 콜백으로 인증성공여부와 Error를 확인 가능

policy는 deviceOwnerAuthenticationWithBiometrics를 사용

reply의 콜백으로 success, Error의 분기처리로 생체인증 성공, 실패처리 가능(ex실패시 별도의 비밀번호창 표시등..)

 

if #available(iOS 8.0, macOS 10.12.1, *) {
       if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &authError) {
             context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "touch ID Authentication") { success, evaluateError in
              DispatchQueue.main.async {
                   if success {
                       // User authenticated successfully
                       completionHandler?()
                    } else {
                       // User Could not authenticate successfully, Error Handling
                    }
              }     
        } else {
          // Could not evaluatePolicy
        }
 }

 

+ FaceID사용 시

Info.plist에 Face ID Usage Description을 설정해줘야한다.

 

 

https://developer.apple.com/documentation/localauthentication/

'swift' 카테고리의 다른 글

Wrapped Image Text  (0) 2022.10.10
DropDown 오픈소스 라이브러리 만들기  (0) 2022.08.10
Custom ScrollPaging  (0) 2022.06.05
RxDataSources  (0) 2022.05.07
RxSwift UnitTest 해보기(RxTest, RxNimble)  (0) 2022.03.10