- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过 FaceID 解锁钥匙串(keychain)/安全区域中的数据,并使其在用户 session 期间可访问(无需额外解锁)。
Per the documentation for kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly :
After the first unlock, the data remains accessible until the next restart. This is recommended for items that need to be accessed by background applications. Items with this attribute do not migrate to a new device.
但是,每当我调用 SecItemCopyMatching() ( documentation ) 时,系统总是提示我执行 FaceID 授权。
谁能解释一下我可能做错了什么(或误解)?
最佳答案
分配给钥匙串(keychain)项目的数据保护等级和访问控制标志是分开的。
在您的问题中,您详细说明了您分配的数据保护类别,但您描述的行为是由指定的访问控制标志引起的。
数据保护等级是指设备的锁定状态,而不是钥匙串(keychain)项。
如果指定一个或多个 of these values然后每次访问钥匙串(keychain)项目时都需要指定的身份验证(生物识别和/或密码)。
如果您只希望用户在第一次访问该项目时验证他们的存在,那么您可以为该项目指定无访问控制并直接使用本地身份验证框架。一旦用户成功通过身份验证,就设置一个标志,并且在该 session 中不再提示他们(或者直到特定时间未过去或您喜欢的任何逻辑)。
关于ios - 通过 kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly 进行不带 FaceID 的 SecItemCopyMatching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51468573/
假设以下情况: 用户重新启动他/她的 iPhone。 用户允许设备锁定,不解锁。 服务器发送一个(静默)推送通知设备(或者任何唤醒应用程序的事情发生)后台,例如 Apple Watch 扩展请求数据等
我正在尝试通过 FaceID 解锁钥匙串(keychain)/安全区域中的数据,并使其在用户 session 期间可访问(无需额外解锁)。 Per the documentation for kSec
我是一名优秀的程序员,十分优秀!