首页 > 解决方案 > Apple IOS OTP 自动填充 SMS api 正确标准

问题描述

我看到了为 IOS 12 记录的关于如何从 SMS 中为您的应用密码字段检索 OTP 的 API。但我似乎无法找到另一方的文档......将 OTP 发送给用户。IOS 可以检测到用户自动填充的 OTP 的标准是什么。例如,是否有字符限制或必须遵循的特定模式。

我指的是这个 iOS 功能https://9to5mac.com/2018/06/04/safari-security-code-auto-fill/

具体来说,此 api 接收 OTP 的标准是什么。如果我向用户发送短信“您的一次性密码是:thebirdwenttothepark”,它会被接收吗?显然,有一个规范根据 iOS 定义了 OTP 是什么。

标签: iosswiftiphonebackend

解决方案


收到的消息应该只包含“代码”或“密码”。如果您需要更多详细信息,您应该查看这篇中等文章。

编辑

  • 发送的代码只能是数字(整数),并且必须最少为 4 位,最多为 9 位。
  • 可以包含空格,但建议不要,因为数字识别会变得复杂,例如235 876按原样识别(“235 876 with spaces included ”),但2354 2356只能识别“354 2356”

并且您在设备上的应用程序中拥有的文本字段应该有

  if #available(iOS 12.0, *) {
        self.textField.textContentType = .oneTimeCode
    }

您可以在使用 iMessage 在后端开始实施之前在设备上测试您的代码,只需将 iMessage 发送到您正在测试的设备(.oneTimeCode启用了文本字段),它就会获取代码。

另外,我建议阅读有关域绑定代码Apple 资源,这些代码是使用 OTP 的更安全方式(仅 iOS 14 和 Big Sur 支持)


推荐阅读