【问题标题】:Change text on WebAuthn faceID prompt/dialog更改 WebAuthn faceID 提示/对话框上的文本
【发布时间】:2021-06-29 03:33:39
【问题描述】:

我正在尝试与 WebAuthn 集成以进行用户身份验证。

下面是我目前使用的代码:

const credOptions = {
    publicKey: {
      rp: {
        name: 'test inc',
        id:'login.test.com'
      },
      user,
      authenticatorSelection: {
        authenticatorAttachment: 'platform',
        requireResidentKey: true,
        userVerification: 'preferred'
      },
      pubKeyCredParams: [
        {
          type: 'public-key',
          alg: -7
        }
      ],
      attestation: 'direct',
      timeout: 60000,
      challenge
    }
  };
  try {
    const cred = await navigator.credentials.create(credOptions);
    return cred;
  } catch (e) {
    console.log(e);
  }

问题

  • 在下面的屏幕截图中,我是否可以更改 WebAuthn 提示/对话框中显示的“登录”和“您要...”下的文本用于 FaceID 或 TouchID。
  • 基本上我想在这两个字段中显示自定义文本,例如:
    • Sign In --> Enroll
    • Do you want to allow "login.com" to use FaceID --> Do you want to allow "Paypal" to use FaceID?

我尝试更改 credOptions 中的依赖方(rp) 信息,但没有看到预期的结果。

如果可行,谁能指导一下。

【问题讨论】:

    标签: javascript dialog prompt mobile-website webauthn


    【解决方案1】:

    不幸的是,这是一个无法自定义的操作系统级提示。这是 WebAuthn API 的一个常见限制 - 响应 navigator.credentials.create().get() 出现的浏览器和操作系统模式无法通过 JS 进行操作,因为它们是由浏览器或操作系统本身在故意不公开的上下文中处理的出于安全原因的网页。

    【讨论】:

      【解决方案2】:

      不幸的是,对于任意文本(“Enroll”和“Paypal”)不太可能这样做,因为文本是由系统提供的,并且用户相信系统能够正确地表示正在发生的事情。

      分段可替换的文本也可能会干扰他们在 UX 中做出的本地化决策。

      最后,在 WebAuthn javascript 中没有定义方法来执行此操作。

      您可能会考虑向 Apple 提供反馈,尤其是您希望或考虑的不同措辞,例如“登录”、“注册”和“继续”。这三个巧合的是来自它们的UX guidelines for 'Sign in with Apple' 的术语,并由操作系统以本地化形式公开。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-07
        • 2015-04-10
        • 1970-01-01
        • 2016-07-13
        • 2011-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多