iOS传感器开发——为APP添加手机密码、指纹进行安全验证
一、引言
iPhone5s之后,iPhone硬件上已支持进行指纹识别的功能,相应的,一些新的api也可以应用于APP中,进行用户安全的验证。目前,开发者可以使用的安全验证方式有两种,一种是通过手机密码进行验证,一种是通过识别指纹进行验证。
二、为APP添加安全验证
要使用安全验证的相关api,我们需要引入如下头文件:
#import <LocalAuthentication/LocalAuthentication.h>
添加手机密码验证:
//创建安全验证对象
LAContext * con = [[LAContext alloc]init];
NSError * error; //判断是否支持密码验证
/**
*LAPolicyDeviceOwnerAuthentication 手机密码的验证方式
*LAPolicyDeviceOwnerAuthenticationWithBiometrics 指纹的验证方式
*/
BOOL can = [con canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:&error];
if (can) {
[con evaluatePolicy:LAPolicyDeviceOwnerAuthentication localizedReason:@"验证信息" reply:^(BOOL success, NSError * _Nullable error) {
NSLog(@"%d,%@",success,error);
}];
}
canEvaluatePolicy是用来判断是否支持手机密码验证的,如果没有设置手机密码,会返回NO,如果启用了,会出现如下界面:
密码验证的提示信息,我们可以自定义设置。
进行指纹验证:
LAContext * con = [[LAContext alloc]init];
#warning 设置屏蔽不显示指纹输入密码按钮
//LAContext的localizedFallbackTitle属性设置(LAContext目前只有这一个属性),如果不设置的话,默认是”Enter Password”.值得注意的是,如果该属性设置为@“”(空字符串),该按钮会被隐藏
context.localizedFallbackTitle = @"";
NSError * error;
BOOL can = [con canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error];
NSLog(@"%d",can);
if (can) {
[con evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"验证指纹" reply:^(BOOL success, NSError * _Nullable error) {
NSLog(@"%d,%@",success,error);
}];
}
回调中的success用来判断是否验证成功:
通过这些验证方式,可以使用户的数据更加安全,在做敏感操作时,可以确保是手机的持有者。