我正在尝试在移动浏览器上自动读取登录OTP。我的Web应用程序是在Angular 7中构建的。
用户单击登录后,就会通过AWS将OTP发送到6位数代码的用户手机。
我已经查询了Google的SMS Retriever API,但这对我的情况没有帮助。
是否可以从移动浏览器读取OTP?
答案 0 :(得分:2)
简而言之,这是不可能的。由于移动设备无法访问文件系统。使用react native或任何类似的东西。
正如我在搜索问题时看到的那样,我发现“ https://web.dev/web-otp/”。它可能有帮助,但是我还没有实现。
答案 1 :(得分:2)
是的,现在有可能。 Chrome在版本84及更高版本中发布了此功能。借助 WEBOTP API ,我们可以在网络上为移动设备检测OTP。
代码-
if ('OTPCredential' in window) {
window.addEventListener('DOMContentLoaded', e => {
const ac = new AbortController();
navigator.credentials.get({
otp: { transport:['sms'] },
signal: ac.signal
}).then(otp => {
alert(otp.code)
}).catch(err => {
console.log(err)
});
})
} else {
alert('WebOTP not supported!.')
}
SMS格式-
@www.amazon.com #1598.
这里@ www.amazon.com是将进行验证的域,而otp是1598
答案 2 :(得分:1)
任何一种浏览器都只能访问浏览器数据。这是出于安全目的。由于在浏览器中运行的网站无法在浏览器外部进行访问,因此您无法访问在网站上通过移动设备收到的OTP。
一般的经验法则是网站无法访问文件系统,因此禁止浏览器之外的任何功能。
如果您要构建本机应用程序,则可以通过权限访问它。
答案 3 :(得分:0)
这是一个古老的问题,在发布问题期间是不可能的。
但是现在我们可以在移动浏览器上阅读OTP了。
您可以在上面的链接中获得文档。
Swiggy之类的公司使用此功能。
注意-它目前处于开发阶段,可从Chrome 78中获得