我开发了一个Web应用程序,它使用WebAuthn API来使用硬件安全密钥进行身份验证。它工作得很好。我尝试使用Flutter原生实现它,兼容IOS和Android。这些平台是否有任何库或起点?我不想使用ChromeTabs或SFSafariViewController。请指教。
vaj7vani1#
对于Android,您有他们的FIDO2 API。一些示例代码库和实现已经存在:
3zwtqj6y2#
您应打开浏览器窗口以进行用户身份验证,并在成功登录后使用my-app://myapp/auth/success =true&token=xyz作为重定向URL(私用URI方案重定向),在此之前将应用的URL模式“my-app”注册为协议。浏览器将自动打开具有给定重定向URL的应用,您必须处理该URL以使应用处于适当状态...
5gfr0r5j3#
iOS/MacOS的新选项是Passkeys。但它依赖于iCloud。万能钥匙使用iCloud钥匙串公钥凭证,无需密码,而是依靠生物识别,如iOS中的Touch ID和Face ID,或macOS中的特定确认来生成和验证帐户。作为验证器,Apple设备会为它在服务上创建的每个帐户生成唯一的公钥-私钥对。验证器保留私钥,并与服务器(称为依赖方)共享其公钥。
3条答案
按热度按时间vaj7vani1#
对于Android,您有他们的FIDO2 API。一些示例代码库和实现已经存在:
然而,在iOS上,FIDO2仅在Safari浏览器中受支持(不确定其他浏览器),并且仅在iOS 13.3之后受支持(链接)。
您可以考虑在Android上使用原生FIDO2 API,并在iOS上打开Safari,直到添加底层平台支持。
然而,正如@mackie指出的那样,如果你在OAuth流程的认证部分使用FIDO2,推荐的路径是使用带有ASWebAuthenticationSession或Chrome自定义标签的Web浏览器。
3zwtqj6y2#
您应打开浏览器窗口以进行用户身份验证,并在成功登录后使用my-app://myapp/auth/success =true&token=xyz作为重定向URL(私用URI方案重定向),在此之前将应用的URL模式“my-app”注册为协议。浏览器将自动打开具有给定重定向URL的应用,您必须处理该URL以使应用处于适当状态...
5gfr0r5j3#
iOS/MacOS的新选项是Passkeys。但它依赖于iCloud。
万能钥匙使用iCloud钥匙串公钥凭证,无需密码,而是依靠生物识别,如iOS中的Touch ID和Face ID,或macOS中的特定确认来生成和验证帐户。
作为验证器,Apple设备会为它在服务上创建的每个帐户生成唯一的公钥-私钥对。验证器保留私钥,并与服务器(称为依赖方)共享其公钥。