To perform a face authentication it is required to have already an "Identification" and its verification ID. The process consist in a liveness check of the user and a final check to verify the match with the identification.
Implementation
Make your class conform to AuthenteqFaceAuthenticationDelegate protocol
Use your client keys to create a UIViewController from Authenteq SDK
Present returned UIViewController modally
Handle result in your delegate implementation
Example to Start a Face Authentication
Please update the below code with your Client ID and Client Secret from your Customer Dashboard.
We suggest to use the token authentication in production environment.
We suggest to app the following code to the relevant Storyboard or ViewController.
importAuthenteqFlowclassExampleViewController:UIViewController {funcfaceAuthentication() {let faceAuthenticationParams =FaceAuthenticationParams( clientId:"< YOUR CLIENT ID >", clientSecret:"< YOUR CLIENT SECRET >", verificationId: verificationId)let viewController = AuthenteqFlow.instance.faceAuthenticationViewController( with: faceAuthenticationParams, delegate: self) viewController.modalPresentationStyle = .fullScreenpresent(viewController, animated:true) }} extensionExampleViewController:AuthenteqFaceAuthenticationDelegate {funcauthenteqDidFinishFaceAuthentication(withcode: String) { presentedViewController?.dismiss(animated:true)// Check face authentication result with the CODE provided }funcauthenteqDidFailFaceAuthentication(witherror: AuthenteqFlowError) {// Handle error presentedViewController?.dismiss(animated:true) }}
@import AuthenteqFlow;
@interface ExampleViewController: UIViewController <AuthenteqFaceAuthenticationDelegate>
@end
@implementation ExampleViewController
- (void)faceAuthentication {
FaceAuthenticationParams *params =
[[FaceAuthenticationParams alloc] initWithClientId:@"<YOUR CLIENT ID>"
clientSecret:@"<YOUR CLIENT SECRET>"
verificationId:_verificationId];
UIViewController *viewController =
[[AuthenteqFlow instance] faceAuthenticationViewControllerWith:params
delegate:self];
viewController.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentViewController:viewController animated:true completion:nil];
}
#pragma MARK - AuthenteqFaceAuthenticationDelegate
- (void)authenteqDidFinishFaceAuthenticationWith:(nonnull NSString *)code {
[self.presentedViewController dismissViewControllerAnimated:true completion:nil];
NSLog(@"Did finish face authentication with code:\n%@", code);
// Check face authentication result with the CODE provided
}
- (void)authenteqDidFailFaceAuthenticationWith:(enum AuthenteqFlowError)error {
// Handle error
[self.presentedViewController dismissViewControllerAnimated:true completion:nil];
NSLog(@"Did finish face authentication with error: %ld", (long) error);
}
@end
Authentication Token can be obtained with face authentication API and then specified with the FaceAuthenticationParams as the following code:
let faceAuthenticationParams =FaceAuthenticationParams( clientId:"< YOUR CLIENT ID >", token:"< TOKEN >", verificationId: verificationId)let viewController = AuthenteqFlow.instance.faceAuthenticationViewController( with: faceAuthenticationParams, delegate: self)present(viewController, animated:true)
{
"errorCode": "API_KEYS_MISSING",
"errorMessage": "No API Keys in the Authorization header"
{
"errorCode": "ACCOUNT_DEACTIVATED",
"errorMessage": "Account deactivated. Please contact your Authenteq Sales Representative in order to keep using this service"
}huiHjio
When successful the response will contain a single boolean property named success: