Skip to content

Instantly share code, notes, and snippets.

View ioskevinshah's full-sized avatar

Kevin Shah ioskevinshah

View GitHub Profile
import LocalAuthentication
/// AuthenticationBlockState
enum AuthenticationBlockState {
case success
case failed
case canceledByUser
case fallback
case canceledBySystem
case passcodeNotSet
let kReasonMessage = "Biometeric required your authentication."
/// Biometric Default Reason(s)
let kBiometryNotAvailableReason = "Biometric authentication is not available for this device."
/// Common Message(s)
let kSetPasscode = "Please set device passcode for authentication."
/// TouchID Related Message(s)
let kTouchIdAuthenticationReason = "Confirm your fingerprint to authenticate."
/// Change default message as per your need.
fileprivate static var defaultReasonMessage: String {
return LocalAuthentication.isFaceIdAvailable ? kFaceIdAuthenticationReason : kTouchIdAuthenticationReason
}
/// Variable Declaration(s)
class var isFaceIdAvailable: Bool {
let context: LAContext = LAContext()
let evaluate = context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: nil)
if #available(iOS 11.0, *) {
return (context.biometryType == .faceID)
}
return evaluate
}