无法使用Web OTP API 实现OTP

问题描述 投票:0回答:3

https://web.dev/web-otp提供的Web OTP API信息很好。但是 https://web-otp.glitch.me/ 中提供的演示目前可以在版本 86.0.4240.111(官方版本)(64 位)上运行。

我看到的主要原因是 OTP 的导航凭证事件没有被触发,我不明白为什么会发生这种情况。

https://web-otp.glitch.me/的代码库有问题吗或者chrome提到的版本有任何问题吗?

重现步骤 -

  1. 在您的移动浏览器中打开https://web-otp.glitch.me/
  2. 如网页所述,从
    未知号码
    @web-otp.glitch.me #12345作为短信发送到您的手机。您应该会收到一条对话框消息,询问您是否希望浏览器输入此 OTP。
javascript google-chrome one-time-password
3个回答
4
投票

尝试更改主机名,不正确的主机名可能会导致 Promise 无法解析,即

navigator.credentials.get

确保您的短信的最后一行应如下所示:

@<HOSTNAME_OF_WEBSITE> #<OTP>


0
投票

经过一些实验,似乎只有当最后一行(带有@和#)之前的最后一行文本以数字结尾时才有效。

真的很奇怪。

所以就像:

OTP code: <OTP>

Ignore this: 1111

@<HOSTNAME_OF_WEBSITE> #<OTP>

0
投票

主机名必须与输入表单所在的主机名匹配。如果输入表单位于子域上,那么它必须是您的主机名。 @hostname 必须另起一行,后跟 1 个空格,然后是“#”,然后是您的代码。

之前或之后的所有内容都将被忽略。因此,您应该在消息的开头使用更用户友好的代码,以防 OTP 自动填充失败,用户仍然可以理解并手动输入。

有机会使用 iframe 进行输入验证,请检查 WEB OTP 文档以了解该特殊情况。

© www.soinside.com 2019 - 2024. All rights reserved.