iOS傳感器開發(fā)——為APP添加手機(jī)密碼勤众、指紋進(jìn)行安全驗(yàn)證
一、引言
iPhone5s之后鲤脏,iPhone硬件上已支持進(jìn)行指紋識(shí)別的功能决摧,相應(yīng)的,一些新的api也可以應(yīng)用于APP中凑兰,進(jìn)行用戶安全的驗(yàn)證掌桩。目前,開發(fā)者可以使用的安全驗(yàn)證方式有兩種姑食,一種是通過(guò)手機(jī)密碼進(jìn)行驗(yàn)證波岛,一種是通過(guò)識(shí)別指紋進(jìn)行驗(yàn)證。
二音半、為APP添加安全驗(yàn)證
要使用安全驗(yàn)證的相關(guān)api则拷,我們需要引入如下頭文件:
#import <LocalAuthentication/LocalAuthentication.h>
添加手機(jī)密碼驗(yàn)證:
//創(chuàng)建安全驗(yàn)證對(duì)象
LAContext * con = [[LAContext alloc]init];
NSError * error; //判斷是否支持密碼驗(yàn)證
/**
*LAPolicyDeviceOwnerAuthentication 手機(jī)密碼的驗(yàn)證方式
*LAPolicyDeviceOwnerAuthenticationWithBiometrics 指紋的驗(yàn)證方式
*/
BOOL can = [con canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:&error];
if (can) {
[con evaluatePolicy:LAPolicyDeviceOwnerAuthentication localizedReason:@"驗(yàn)證信息" reply:^(BOOL success, NSError * _Nullable error) {
NSLog(@"%d,%@",success,error);
}];
}
canEvaluatePolicy是用來(lái)判斷是否支持手機(jī)密碼驗(yàn)證的,如果沒(méi)有設(shè)置手機(jī)密碼曹鸠,會(huì)返回NO煌茬,如果啟用了,會(huì)出現(xiàn)如下界面:
密碼驗(yàn)證的提示信息彻桃,我們可以自定義設(shè)置坛善。
進(jìn)行指紋驗(yàn)證:
LAContext * con = [[LAContext alloc]init];
#warning 設(shè)置屏蔽不顯示指紋輸入密碼按鈕
//LAContext的localizedFallbackTitle屬性設(shè)置(LAContext目前只有這一個(gè)屬性),如果不設(shè)置的話,默認(rèn)是”Enter Password”.值得注意的是,如果該屬性設(shè)置為@“”(空字符串),該按鈕會(huì)被隱藏
context.localizedFallbackTitle = @"";
NSError * error;
BOOL can = [con canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error];
NSLog(@"%d",can);
if (can) {
[con evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"驗(yàn)證指紋" reply:^(BOOL success, NSError * _Nullable error) {
NSLog(@"%d,%@",success,error);
}];
}
回調(diào)中的success用來(lái)判斷是否驗(yàn)證成功:
通過(guò)這些驗(yàn)證方式,可以使用戶的數(shù)據(jù)更加安全,在做敏感操作時(shí)眠屎,可以確保是手機(jī)的持有者剔交。