Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gabrieltheodoropoulos/iOS-TouchID-Swift
The TouchID authentication mechanism implemented in Swift.
https://github.com/gabrieltheodoropoulos/iOS-TouchID-Swift
Last synced: 3 months ago
JSON representation
The TouchID authentication mechanism implemented in Swift.
- Host: GitHub
- URL: https://github.com/gabrieltheodoropoulos/iOS-TouchID-Swift
- Owner: gabrieltheodoropoulos
- License: mit
- Created: 2014-09-02T19:34:08.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2014-09-03T06:14:16.000Z (over 10 years ago)
- Last Synced: 2024-08-01T19:32:06.083Z (6 months ago)
- Language: Swift
- Homepage:
- Size: 152 KB
- Stars: 22
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-swift-cn - iOS-TouchID-Swift - TouchID for Swift. (Libs / Security)
README
# iOS-TouchID-Swift #
#### The TouchID authentication mechanism implemented in Swift ####
## About ##
In iOS 8, Apple provides a new framework named *LocalAuthentication* which lets us use the TouchID biometric authentication mechanism to our applications. TouchID was first introduced in iOS 7 as an alternative way to unlock iPhone 5s devices and make purchases in the App Store. Here I have created a "plug and play" class written in Swift, which you can add to your projects and integrate the TouchID authentication to your applications without performing any custom implementation at all, even without you need to know the TouchID details at all.
Normally, you don't have to do any modification to the TouchID class, unless you really need to. Read next to see instructions about its usage, and how easy it is to integrate it to your projects.
## How To Use ##
#### Add the class file to the project ####
The first step is to add the *TouchID.swift* file to your project. This file imports the *LocalAuthentication* framework, which the compiler should link automatically. However, if you encounter any problems, then go and add manually the *LocalAuthentication.framework* to your project.
#### Adopt the protocol ####
In the view controller that you are about to integrate the TouchID authentication, adopt the *TouchIDDelegate* protocol as shown next:
class ViewController: UIViewController, TouchIDDelegate { ... }
#### Initialize, setup and present ####
In the
viewDidLoad
method (or anywhere else that best suits you) initialize a TouchID object, set it up and make the proper call to present the TouchID dialog:
// Initialize a TouchID object.
let touchIDAuth : TouchID = TouchID()// Set the reason for which you ask authentication and that will appear to the TouchID dialog.
touchIDAuth.touchIDReasonString = "To access the app."// Set your view controller class as the delegate of the TouchID class.
touchIDAuth.delegate = self// Present the TouchID dialog.
touchIDAuth.touchIDAuthentication()#### Handling authentication results ####
There are two delegate methods you should necessarily implement. In case of successful authentication, the
touchIDAuthenticationWasSuccessful
delegate method is called, and in here you should add any code needed to proceed to the app and display its contents.In case of unsuccessful authentication, then the
touchIDAuthenticationFailed
delegate method is called. Its parameter, an *enum* value, describes the reason for which the authentication failed. Use aswitch
or anif
statement to go through all possible cases and take the proper actions for each one of them. Pay special attention to the case where the user fallbacks to a custom authentication method. For all the possible fail/error reasons, either take a look at the *TouchIDErrorCode* enum in the *TouchID.swift* file, or look up the *LAError* class in the official documentation.## Remarks ##
Take a quick look at the sample project for a reference on how to use it. It won't take you more than two minutes, and it's a necessary step so as you see everything that I previously described in action.
Remember that you can't test the TouchID authentication in Simulator, you need a real device.