如何解决更改 WebAuthn faceID 提示/对话框上的文本
我正在尝试与 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?
-
我尝试更改 rp
中的依赖方 (credOptions
) 信息,但没有看到预期的结果。
任何人都可以指导一下这是否可行。
解决方法
不幸的是,这是无法自定义的操作系统级提示。这是 WebAuthn API 的一个常见限制 - 响应于 navigator.credentials.create()
和 .get()
出现的浏览器和操作系统模式无法通过 JS 进行操作,因为它们是由浏览器或操作系统本身在一个上下文中处理的出于安全原因,故意不向网页公开。
不幸的是,它不太可能使用任意文本(“注册”和“贝宝”)这样做,因为文本是由系统提供的,并且用户相信系统能够正确地表示正在发生的事情。
具有可分段替换的文本也可能会干扰他们在用户体验中做出的本地化决策。
最后,在 WebAuthn javascript 中没有定义方法来执行此操作。
您可能考虑做的是就此向 Apple 提供反馈,尤其是您想要或考虑的不同措辞,例如“登录”与“注册”与“继续”。这三个巧合的是来自其 UX guidelines for 'Sign in with Apple' 的术语,并由操作系统以本地化形式公开。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。