2

我尝试在我的 Web 应用程序中实现 U2F。由于该应用程序可用于多个 URL,因此我必须添加一个具有有效 FacetID 的 JSON 文件,如规范中所述。Yubico 在他们的网站上对该规范有一个简短的总结。

不幸的是,当我调用u2f.register(...)Method 时,我得到错误代码 2,这意味着 AppID 有问题。

我的 AppID 是 JSON 文件的 URL。如规范中所述,我添加application/fido.trusted-apps+json为内容类型。无论如何,这个 URL 永远不会被调用。

我正在使用最新的 Chrome (v46.0.2490.80m)。如此处所述,不再需要 Chrome 扩展程序。

此外,我在 Chromium 项目上发现了一个已关闭的错误报告,它告诉我 U2F 是根据规范实现的。

我使用的是u2f-api.js而不是 Chrome 扩展程序。

这是 u2f-api.js 的问题吗?有更新的吗?

到目前为止,这是我的代码:

var u2frequest =
[
    {
        "appId":"https://localhost:44300/api/u2f/appids.json",
        "challenge":"hDharTG-SROuScxyD7ACpMDp4xl6A91E9nUPXDRSo_4",
        "version":"U2F_V2"
    }
];
u2f.register(u2frequest, [], function (data) {
    // I always get data={errorCode:2} here.
}
4

2 回答 2

2

构面不适用于自签名证书。因此,单个身份应用程序在 localhost 上可以正常工作,但多个身份在 localhost 上将无法正常工作。

最好的解决方案是租用 VPS 并获得 Letsencrypt 证书。

于 2016-09-22T05:11:23.140 回答
1

我猜你的appId json有不同的来源,facetID的来源必须与AppID相同,例如:https://example.com/app-id.json中的所有facetID必须具有相同的https来源:/ /*.example.com

所以在你的情况下,你的 trustFaceID 应该都属于https://localhost:44300

于 2017-03-28T10:03:14.010 回答