美文网首页
实现Touch ID验证登录

实现Touch ID验证登录

作者: 元昊 | 来源:发表于2017-11-09 16:21 被阅读212次

    官方文档 https://developer.apple.com/documentation/localauthentication/lacontext

    第一步 :添加依赖库

     LocalAuthentication .Framework
    

    第二步:准许验证和登录逻辑

    准许验证逻辑:(必须是登录之后)

    • 开启:在app登录后,在“用户信息-安全”,点击开启“指纹登录”;
    • 验证TouchID:检测当前设备是否支持TouchID,若支持则发起TouchID验证;
        LAContext *laContext = [[LAContext alloc] init];
    
        BOOL canAuth = [laContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil];
    
    • 生成设备账号/密码:TouchID验证通过后,根据当前已登录的账号和硬件设备Token,生成设备账号/密码(规则可自定,密码要长要复杂),并保存在keychain;
    if (canAuth) {
            [laContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"通过Home键验证已有手机指纹" reply:^(BOOL success, NSError * _Nullable error) {
                NSLog(@"%d",success);
                //此处获取已登录账号及密码加密
            }];
        }
    
    • 生成设备账号/密码后,将原账号及设备账号/密码,加密后发送到服务端进行绑定;
    • 验证原账号及设备账号有效后,返回相应状态,绑定成功则完成整个TouchID(设备)绑定流程。
    IMG_1638.PNG IMG_1639.PNG

    指纹登录
    在设备(用户)绑定之后,并且用户账号退出后,可以使用指纹登录,若当前设备未绑定,则不会出现“指纹登录”按钮

    • TouchID登录:在用户登录界面,点击“指纹登录”;
    • 验证TouchID:检测当前设备是否支持TouchID,若支持则发起TouchID验证;
    • 登录:读取app在本机的设备账号/密码,调用设备登录接口,发起登录请求;
    • 成功:验证设备账号/密码后,返回相应状态,登录成功则完成整个TouchID登录流程。

    总结:Touch ID验证的调用的方法有两个,一个是判断当前设备是否支持Touch ID,第二个就是验证指纹,此外还有个是evaluatedPolicyDomainState判断本地指纹库是否更新。“ However, the nature of the change cannot be determined from this data.”可能做完的感受就是这就话了,你不能从返回值得到有用的信息,仅仅是做判断。蛮好的\··||··/

    相关文章

      网友评论

          本文标题:实现Touch ID验证登录

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