티스토리 뷰
728x90
반응형
애플의 Face ID 를 활용한 샘플 프로젝트와 개발자 문서를 정리해봤다.
iOS) Face ID & Touch ID - Biometrics Authentication(생체인식 인증)
자, 이제 카카오톡 QR코드 위젯에 적용해보자.
내용
- 앱 접근 시 Face ID 를 통해서 인증을 필요로 한다.
시작하기
🔓 프로젝트 설정
🔓 UI 구성
- 기기에서 Face ID 를 지원하면 Face ID 버튼을 보여줌.
🔓 Face ID 적용
mvvm 패턴에서 Face ID 인증 절차를 가지는 Service 클래스를 만들고 로직을 구성하였다.
- FaceIDAuthenticationViewController
private func setFaceIDAuthentication() {
faceIDButton.isHidden = service.checkBiometryTypeFaceID()
service.loginWithFaceID()
}
- FaceIDAuthenticationService
import Foundation
import LocalAuthentication
class FaceIDAuthenticationService {
var context = LAContext()
enum AuthenticationState {
case loggedin, loggedout
}
var state = AuthenticationState.loggedout
// ✅ 장비가 Face ID 가능한지 묻는 것
func checkBiometryTypeFaceID() -> Bool {
return context.biometryType == .faceID
}
func loginWithFaceID() {
context.localizedCancelTitle = "Enter Username/Password"
var error: NSError?
if context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &error) {
let reason = "Log in to your account"
context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: reason ) { success, error in
if success {
// Move to the main thread because a state update triggers UI changes.
DispatchQueue.main.async { [unowned self] in
self.state = .loggedin
}
} else {
print(error?.localizedDescription ?? "Failed to authenticate")
}
}
} else {
print(error?.localizedDescription ?? "Can't evaluate policy")
}
}
}
결과
깃허브
728x90
반응형
'iOS > Clone Coding' 카테고리의 다른 글
iOS) Kakao QRcode Widget 클론코딩 - 진동(2/2) - Haptick (0) | 2022.02.17 |
---|---|
iOS) Kakao QRcode Widget 클론코딩 - Widget 데이터 공유 및 뷰 구현(SwiftUI) (0) | 2021.09.06 |
iOS) Kakao QRcode Widget 클론코딩 - Widget(2/2) (0) | 2021.09.04 |
iOS) Kakao QRcode Widget 클론코딩 - Widget(1/2) (2) | 2021.09.04 |
iOS) Kakao QRcode Widget 클론코딩 - MVVM 적용 (0) | 2021.09.01 |
댓글
TAG
- APNS
- WidgetKit
- containerBackground
- projectsetting
- rxswift
- Firebase
- YPImagePicker
- Widget
- urlsession
- configurable widget
- IOS
- Notification
- Swift
- github
- UserDefaults
- WWDC22
- Objective-C
- OpenSourceLibrary
- 2022 KAKAO TECH INTERNSHIP
- CloneCoding
- MOYA
- async/await
- Protocol
- WWDC
- Algorithm
- SwiftUI
- 서버통신
- RxCocoa
- MVVM
- watchOS
최근에 올라온 글
최근에 달린 댓글
글 보관함
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
링크
- Total
- Today
- Yesterday