Too*_*oop 5 authentication android webauthn fido
我正在尝试在 Android 上实现 FIDO2。我的域上托管有 assetlinks.json(抱歉,我不想也不确定是否允许透露整个网址)。我定义了 asset_statements 字符串并将其添加到我的清单中,并且还实现了整个获取注册质询逻辑,其中我从 PublicKeyCredentialCreateOptions 创建待处理意图。启动意图后,我看到一个白色屏幕,它显示并关闭得非常快,没有任何描述性错误或任何东西,我不知道如何调试这个问题。日志显示:
ActivityTaskManager: Displayed com.google.android.gms/.fido.fido2.ui.Fido2FullScreenActivity
E/Fido: [DigitalAssetsAssociationChecker] JSON Object doesn't have linked key
E/Fido: [Fido2RequestController] The incoming request cannot be validated
E/Fido: [Fido2RequestController] The incoming request cannot be validated
Run Code Online (Sandbox Code Playgroud)
在https://developers.google.com/digital-asset-links/tools/generator上,它说我的域授予应用程序深度链接到我的包名称。
我在用com.google.android.gms:play-services-fido:18.1.0
日志中的错误没有任何帮助,我不确定我是否仍然遗漏了一些东西,任何帮助将不胜感激。
好的,我通过使用示例应用程序https://github.com/googlecodelabs/fido2-codelab并进行更改来解决这个问题,所以我要回答我自己的问题。请求注册质询时,RP.id 字段需要与您的域名相同。在示例中,Rp.id 值为“webauthn-codelab.glitch.me”,我将其更改为“webauthn.glitch.me”只是为了尝试会发生什么。你猜怎么着,我遇到了和以前一样的错误:
E/Fido: [DigitalAssetsAssociationChecker] JSON Object doesn't have linked key
E/Fido: [Fido2RequestController] The incoming request cannot be validated
E/Fido: [Fido2RequestController] The incoming request cannot be validated
Run Code Online (Sandbox Code Playgroud)
总而言之,请确保从后端返回的 RP.id 与域 url 匹配。这里还有一个解释 RP id 的链接:https://www.w3.org/TR/webauthn-2/#relying-party-identifier