用户拒绝使用生物特征时的生物特征类型

Posted

技术标签:

【中文标题】用户拒绝使用生物特征时的生物特征类型【英文标题】:Biometry Type when user denied biometry usage 【发布时间】:2017-11-23 10:52:38 【问题描述】:

在我们的应用中,用户必须注册设备生物特征才能使用它进行身份验证。 注册文字和法律说明根据相关生物特征(注册到touch ID或注册到face ID) 据我发现,生物特征类型可通过 LAContext 获得,但如果用户拒绝使用生物特征,则上下文返回 biometryType=.none

除了询问屏幕尺寸并与 iphone X 进行比较(坏代码)之外,还有什么想法吗?

    static fileprivate var biometryType: DSLocalAuthenticationBiometryType 
        let context = LAContext()

        var error: NSError?
        let _ = context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error)

        if #available(ios 11.0, *) 

            return context.biometryType == .typeFaceID ? .typeFaceID : .none
        
        else 
            return .none
        
    

谢谢

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,我刚刚发现,如果您根据密钥 LAPolicyDeviceOwnerAuthentication 而不是 LAPolicyDeviceOwnerAuthenticationWithBiometrics 进行评估,即使在用户拒绝之后许可,评估成功并且您获得正确的 biometryType。你的代码就像

static fileprivate var biometryType: DSLocalAuthenticationBiometryType 
    let context = LAContext()

    var error: NSError?
    let _ = context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &error)

    if #available(iOS 11.0, *) 

        return context.biometryType == .typeFaceID ? .typeFaceID : .none
    
    else 
        return .none
    

注意:在没有 touch id 和 face id 的设备上,它仍然返回 YES,所以你不会知道设备是否真的有生物识别硬件,iOS 低于 11(不公开属性 biometriyType)

更新

对于 iOS 10 或更低版本的设备,您可以使用 LAPolicyDeviceOwnerAuthenticationWithBiometrics 和往常一样,它会正常运行(返回设备是否支持触摸 Id),因此只需区分正在运行的操作系统版本 :)

让我知道它是否有效:)

最好的

【讨论】:

@Juan iOS 10 可能只知道支持(或不支持)触摸 ID,我说的是来自方法 canEvaluatePolicy 的结果,该方法返回 true 是否设备上有物理指纹传感器.为了确定这一点,在 iOS 10 上,您可以使用策略 LAPolicyDeviceOwnerAuthenticationWithBiometrics。不能考虑在 iPhone X 上运行 iOS 10 的场景,因为它已经随 iOS 11 一起提供,因此没有必要在 iOS10 上使用 biometryType,因为只有当你有指纹传感器时它才会返回 true :)我已经编辑了我的答案,为 iOS 10 案例指定了这个 我不完全确定,但此代码可能会在 11.0.0 上崩溃,我正在使用的应用程序出现问题,但比较的是 .faceID,而不是 .typeFaceID,前者不是直到 11.0.1 才可用,后者不清楚,而且我没有带有 11.0 的设备或模拟器可供检查。

以上是关于用户拒绝使用生物特征时的生物特征类型的主要内容,如果未能解决你的问题,请参考以下文章

在不存储用户生物特征的情况下使用 Touch ID 或 Face ID

生物特征认证实现

从 iPad 触控笔获取生物特征信息

用于登录网站的生物特征指纹

HarmonyOS之生物特征识别的功能和使用

生物识别六大技术