苹果 IOS OTP 自动填充短信 API 的正确标准

4
我看到了关于如何从短信中检索 OTP 并用于您的应用密码字段的 IOS 12 的 API 文档,但似乎找不到发送 OTP 给用户的文档。iOS 可以自动填充用户的 OTP 的条件是什么?例如,是否有字符限制或必须遵循某种特定模式?
我指的是这个 iOS 功能 https://9to5mac.com/2018/06/04/safari-security-code-auto-fill/ 具体来说,接收此 API 的 OTP 的条件是什么?如果我向用户发送“您的一次性验证码为:thebirdwenttothepark”,它会被捕获吗?显然,根据 iOS 的定义,OTP 有其规范。
1个回答

3
收到的信息应该只包含“code”或“passcode”。如果需要更多细节,请查看this中的文章。
编辑:
- 发送的代码必须仅为数字(整数),最少4位,最多9位。 - 它可以包含空格,但建议不要这样做,因为数字识别可能会变得复杂。例如,235 876被识别为“235 876 包括空格”,但2354 2356只能识别为“354 2356”。 你在设备上的应用程序中的文本字段应该有:
  if #available(iOS 12.0, *) {
        self.textField.textContentType = .oneTimeCode
    }

在开始在后端实现代码之前,您可以使用iMessage在设备上进行测试,只需向正在测试的设备(启用了.oneTimeCode文本字段)发送iMessage即可获取代码。

此外,我建议阅读this苹果资源,了解关于域绑定代码的更安全使用OTP的方法(仅支持iOS 14和Big Sur)。


请输入您的一次性验证码:123abc验证码:apple验证码:the bird went to the park行为会是什么样的?它会只选择“park”这个词还是整个短语?一次性验证码可以包含空格吗?下划线呢? - CodeCamper
@CodeCamper 抱歉,我一开始误解了问题,我已经修改了答案以回答真正的问题,并测试了你提供的所有示例,并解释了如何在后端实现之前自己测试任何组合。 - shadow of arman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接