Запрос PIN-кода устройства отпечатков пальцев iOS, когда установлен флаг kSecAccessControlBiometryCurrentSet

Я работаю над аутентификацией по отпечатку пальца, используя методы цепочки для ключей из iOS, и не могу не показывать предложение пин-кода, которое будет отображаться после ошибки.

Я использую флаг kSecAccessControlBiometryCurrentSet, который должен разрешать только биометрическую аутентификацию.

Таким образом, для первого приглашения это работает хорошо, и у меня не было возможности ввести парольную фразу, но как только аутентификация не удалась, приглашение меняется и позволяет пользователю ввести свой код. Я хотел бы заблокировать это и разрешить аутентификацию по отпечатку пальца только через это приглашение.

Вот код, который я использую: https://github.com/xavistas/cordova-plugin-touch-id/blob/noPinCode/src/ios/TouchID.m

Если у вас есть какие-либо идеи, не стесняйтесь поделиться :)!


person Dragomitch    schedule 12.09.2018    source источник
comment
Я забыл упомянуть: я уже нашел похожий билет ( stackoverflow.com/questions/50820505/ ), но он не не решил мою проблему.   -  person Dragomitch    schedule 12.09.2018


Ответы (1)


Наконец-то я нашел решение, но оно не совсем тривиальное. Вы должны знать, что связка ключей никогда не очищается для вашего приложения, даже если вы его удалите.

Таким образом, если вы однажды попытались использовать флаг, скажем, kSecAccessControlUserPresence, пока вы вручную не укажете, что хотите очистить запись связки ключей, этот флаг останется сохраненным. И в принципе, даже если вы «создаете токен цепочки для ключей» каждый раз, когда пользователь подключается к приложению, он не заменит запись цепочки для ключей.

Я надеюсь, что это поможет некоторым из вас!

person Dragomitch    schedule 18.09.2018