android - SMS Retriever API 如何检索 SMS 发件人号码
问题描述
是否可以获得我在android中收到的短信的手机号码?我们正在尝试通过发送 SMS 并从运营商处获取来验证用户的手机号码,但接下来的步骤涉及通过读取 SMS 进行身份验证。我们面临的问题是,如果我从任何其他移动设备发送相同的消息,则无法验证原始 SMS 号码。它盲目地阅读短信。
解决方案
使用 SMS Retriever API 获取发件人的手机号码将是一个不错的选择,以避免错误的 SMS 检索。但不幸的是,到目前为止,您无法获取使用此 API 检索的 SMS 的发件人手机号码。此功能可能会出现在未来的版本中。
但是,如果您已经拥有 OTP 验证机制,则无需担心,因为...
- SMS Retriever API 已经有一些授权机制,可以减少此类虚假 SMS 检索情况的可能性。例如,使用 SMS Retrieval API 读取的所有 SMS 都有一个 11 个字符的哈希字符串来标识您的应用程序。不是每个人都知道您的应用程序的哈希字符串,因此获得未经授权的短信的可能性非常低。
- 即使您收到未经授权方发送的伪造短信,您从中获得的 OTP 也是无效的,因此没有机会进行未经授权的验证。
奖金
谷歌还发布了一个名为 SMS User Consent API 的新 API,它能够通过 One Tap 自动填充 OTP。幸运的是,这个 API 还提供了发件人的手机号码过滤。这意味着,如果您的 SMS 提供商从特定手机号码向您发送 SMS,您可以在代码中指定它,它会读取仅从该手机号码收到的 SMS。
参考:
SMS Retriever API:https ://developers.google.com/identity/sms-retriever/overview
SMS 用户同意 API:https ://developers.google.com/identity/sms-retriever/user-consent/overview
推荐阅读
- react-native - 将文本显示为平面列表项中的标题以分隔每个部分,React Native
- python - Python string.format 替换索引
- swift - 组合框架(URLSession.DataTaskPublisher):使用发布者数组改变第一个发布者结果
- python - python类中定义的调用函数。函数是怎么调用的?
- sql - 从重复数据中选择单行
- docusignapi - 没有 clientUserId 的收件人视图,打开信封进行查看
- google-bigquery - “来自服务器的未知错误响应。” 创建表后
- javascript - 计数器 localStorage
- python-3.x - 使用 tablib 加载 excel 文件时选择 excel 工作表的名称
- java - 如何将来自 maven 中央仓库的特定(非默认)jar 与 maven 一起使用?(蜂巢执行)