检查浏览器的U2F功能

时间:2016-01-27 23:37:07

标签: javascript authentication fido-u2f

有没有办法检查浏览器是否支持U2F

我现在知道,Chrome是唯一正式使用U2F的浏览器,但是有一些Firefox的插件,也可能有定制的浏览器可能已经获得了U2F。

我不想像谷歌那样放弃这样的浏览器,因为插件用户无法使用它。

我看到GitHub似乎有办法看到它(因为它区分了有和没有插件的Firefox),但我不知道如何做到这一点。

2 个答案:

答案 0 :(得分:0)

使用库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
);

CodePen sandbox

答案 1 :(得分:0)

现在是2019年,整个U2F内容实际上有了一些有趣的改进。

U2F浏览器API基本上已由WebAuthn取代,并且尽管可以肯定会淘汰一些旧版浏览器,但实际上并没有任何相关的旧版浏览器真正支持U2F API,而该浏览器仍在大量使用,例如chrome auto-无论如何都会进行更新,而chromium及其forks基本上是唯一本机支持U2F的浏览器。

并使用新的webauthn,您可以根据示例文档中使用的库来实际检查功能:

if (!navigator.credentials || !navigator.credentials.create) { 
  //try navigator.credentials.get for login instead of create
  //tell the user
}