有没有办法检查浏览器是否支持U2F?
我知道目前,Chrome 是唯一官方支持 U2F 的浏览器,但有 Firefox 的插件,也可能有定制的浏览器可能已经支持 U2F。
我不想像谷歌那样放弃这样的浏览器,因为插件用户将无法使用它。
我看到 GitHub 似乎有办法查看它(因为它区分了有和没有插件的 Firefox),但我不知道该怎么做。
有没有办法检查浏览器是否支持U2F?
我知道目前,Chrome 是唯一官方支持 U2F 的浏览器,但有 Firefox 的插件,也可能有定制的浏览器可能已经支持 U2F。
我不想像谷歌那样放弃这样的浏览器,因为插件用户将无法使用它。
我看到 GitHub 似乎有办法查看它(因为它区分了有和没有插件的 Firefox),但我不知道该怎么做。
使用库caniuse-support,它使用来自服务caniuse.com ( https://caniuse.com/#feat=u2f ) 的信息并使用库bowser(浏览器检测器):
const {
getSupport,
currentBrowser,
} = CaniuseSupport;
const test1 = getSupport("u2f"); // current browser
console.log(
"Get feature support of U2F current browser (" +
currentBrowser.id +
" " +
currentBrowser.version +
"):",
test1.level
);
现在是 2019 年,整个 U2F 的东西实际上已经有了一些有趣的改进。
U2F 浏览器 API 基本上已被 WebAuthn 取代,虽然这肯定会淘汰一些旧浏览器,但实际上并没有任何相关的旧浏览器真正支持 U2F API,它仍然被广泛用作 chrome 自动更新和chromium 及其分支基本上是唯一开箱即用原生支持 U2F 的浏览器。
并且使用新的 webauthn,您可以根据我在示例文档中使用的库中的内容实际检查功能:
if (!navigator.credentials || !navigator.credentials.create) {
//try navigator.credentials.get for login instead of create
//tell the user
}