从短信抖动中读取OTP

时间:2019-03-29 15:41:47

标签: flutter flutter-dependencies

我知道用于阅读,编写和发送SMS的软件包flutter_sms

但是,正如我所见,它还会向用户请求SEND_SMS权限,这是不需要的,而且如果您的应用程序不仅仅依赖于此功能,则google不允许要求此权限。

有人能帮我动摇地从SMS读取OTP吗?

或者可以帮助为iOS和Android原生编写功能并将其与flutter集成。

3 个答案:

答案 0 :(得分:1)

查看此插件。 https://pub.dev/packages/sms_autofill#-readme-tab-

对于iOS,不需要此程序包,因为默认情况下会提供SMS自动填充功能,但对于Android则不需要此程序包。

由于没有使用SMSRetriever API的需要,因此没有询问用户读取SMS消息的权限。

您有两个可自动填充SMS代码的窗口小部件PinFieldAutoFill和TextFieldPinAutoFill。

在将电话号码发送到后端之前,您需要告知插件它需要侦听带有代码的SMS。

要做到这一点,您需要做的:

await SmsAutoFill().listenForCode;

这将在5分钟内监听带有代码的SMS,并在收到消息后自动填充以下小部件。

答案 1 :(得分:0)

通过查看您指出的程序包,有2件事来自存储库

  1. 不再维护
  2. 仅适用于android。

可能的解决方案

  1. 看看这个叉子-https://pub.dartlang.org/packages/sms_maintained
  2. 假设您不需要ios
  3. 您说过,您不需要征得发送许可。 https://pub.dartlang.org/packages/sms_receiver
  4. 您要实施哪种OTP,有几种用于手机的软件包 身份验证,如果它是firebase:

总的来说,我认为您可以与sms_receiver一起收听特定的消息,但是似乎您必须在收到每条消息之后再次收听,这很奇怪,但是我想出于身份验证的目的还可以,因为您需要sms在用户单击某些登录按钮之后。

答案 2 :(得分:0)

我已使用此插件自动从SMS读取OTP

查看此插件。 https://pub.dev/packages/sms_otp_auto_verify

首先,您在pubspec.yaml中添加了sms_otp_auto_verify:^ 1.2.2

无需在清单文件中添加任何权限

首先获取签名代码(通过调用_getAppSignature),该签名代码是服务器包含SMS格式(传入SMS)的代码所必需的,例如:

<#> 12345是您登录到您的应用程序名称的OTP。有效期为30分钟。不要与任何人分享。 xyZaBcD2EFg

IndustrialContainer