美文网首页
访问钥匙串及指纹解锁

访问钥匙串及指纹解锁

作者: 星辰流转轮回 | 来源:发表于2018-06-05 21:03 被阅读25次

    钥匙串

    开发中,为了安全,不允许本地明文存储本地密码!

    但是,有需要登录的时候显示怎么办?

    iOS 7.0.3之后 苹果对开发者开放钥匙串使用权限 ! 但是内部是C语言  我们可以借助三方框架完成  --- SSkeychain

    /** 保存密码

     *  参数

     *  1. 密码明文

     *  2. 服务,可以随便写,但是他是APP的一个标识,建议用BundleID

     *  3. 账号,用户名

     */

    + (BOOL)setPassword:(NSString*)password forService:(NSString*)serviceName account:(NSString*)account;

    /** 获取密码 */

    + (NSString*)passwordForService:(NSString*)serviceName account:(NSString*)account;

    /** 找出所有的账号 */

    + (NSArray*)allAccounts;

    可以把密码信息存储到钥匙串中,这样即使不小心误删app,再下载下来,也会记住登录账号密码.

    注意:使用钥匙串的话,需要在工程中打开 KeyChain Groups


    指纹识别

    导入库 #import  <LocalAuthentication/LocalAuthentication.h>

    LAContext * context = [[LAContextalloc]init];

     //判断设备是否支持指纹识别

     if([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometricserror:NULL]) {

     //输入指纹

    [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometricslocalizedReason:@"指纹识别"reply:^(BOOLsuccess, NSError * _Nullableerror) {

     NSLog(@"%d %@",success,error);

            }];

        }else{

     NSLog(@"不支持");

        }

    指纹识别的错误信息

     LAErrorAuthenticationFailed      --- 指纹无法识别

     LAErrorUserCancel                        --- 用户点击了"取消"

     LAErrorUserFallback                      --- 用户点击了"输入密码"

     LAErrorSystemCancel                    --- 系统取消,比如激活了其他应用(用户)

     LAErrorPasscodeNotSet                --- 因为设备上没有设置密码

     LAErrorTouchIDNotAvailable         --- 设备没有Touch ID

     LAErrorTouchIDNotEnrolled          --- 因为用户没有输入指纹

     LAErrorTouchIDLockout                 --- 多次输入错误,密码锁定

     LAErrorAppCancel                          --- 比如电话进来,用户不可控的

    注意:指纹识别不可以代替登录的逻辑, 账号密码登录,可以说明用户是账号的主人;指纹识别说明用户是手机的主人!

    相关文章

      网友评论

          本文标题:访问钥匙串及指纹解锁

          本文链接:https://www.haomeiwen.com/subject/zlyssftx.html