在新用户注册期间进行电话号码验证的最佳做法

1,082 阅读5分钟

你有一个新的用户!太好了!Twilio提供了一套工具来快速验证和核实用户的电话号码,是快速和无缝入职的完美选择。让我们看看如何让用户注册你的服务并开始使用,同时确保准确性并减少欺诈性注册的一些最佳实践。

这篇博文将涵盖使用电话号码的无缝用户注册的建议和最佳做法。类似的建议也适用于首次提供电话号码的现有用户账户,即使该用户账户已经存在。

在注册新用户时,你要关注三个方面。

  1. 电话号码输入,从用户那里收集电话号码。
  2. 手机号码验证,确保手机号码是合法的。
  3. 电话号码验证,确保用户可以使用该电话号码。

电话号码输入的最佳做法

将国家代码放在一个单独的字段中

国际电话输入法这样的插件提供了用户友好的界面,支持各种全球电话号码格式。将国家代码分开,对用户更友好,并有助于确保输入的内容可以转化为标准的E.164格式。

phone number in e.164 format

将电话号码转化为E.164格式

E.164是一种标准化的国际电话号码格式,确保号码的唯一性。这种格式由Lookup API返回,被大多数Twilio API使用,包括Verify API和Messaging APIs。

这篇博文有在HTML和JavaScript中处理国际电话输入的建议

[可选] 检查IP的地理位置是否与电话号码的国家代码相符

用户用不同国家的电话号码进行注册是有合法原因的,但这种行为可能与欺诈活动有关。

手机号码验证的最佳做法

一旦用户输入了他们的电话号码,Twilio Lookup API就会提供电话号码智能,支持格式化、验证、运营商信息、线路类型等。

使用Twilio Lookup API来。

1.确认电话号码是有效的

不要让用户注册或输入无效的号码,如12345+1 (111) 111-1111这篇博文将告诉你如何在HTML中验证电话号码

2.检测线路类型,包括手机、固定电话和VoIP号码

检测landline 线路类型允许你发送语音验证码,而不是短信,如果你的公司有一个较老的客户群,不太可能有一个能发短信的电话,这一点特别有用。VoIP号码(仅适用于美国号码的检测)可能是合法的,但你可以决定在这个阶段添加额外的保护,如reCAPTCHA

在这篇博文中了解如何用查询API检测线路类型

3.建立一个接受国家代码的允许列表

在注册时,允许的国家列表是一个很好的方式,以确保你满足合规要求,减少欺诈,或以其他方式控制你的入职管道。

这篇博文将指导你如何使用Lookup API建立一个允许的国家列表。

4.维护一个基于信誉的运营商名单

与国家代码允许列表类似,某些运营商和前缀与欺诈和垃圾邮件的增加率有关。在发送短信之前检测一个运营商可以帮助保护你的应用。

向CLNPC申请批准加拿大运营商的信息

如果你在加拿大经营,你需要从CLNPC获得额外的批准,然后查询API将返回加拿大号码的信息。

电话验证的最佳做法

向所提供的电话号码发送一个一次性密码,以确保用户能够访问该号码

这有助于防止用户提供其他人的电话号码,帮助您的企业确保独特的注册,并对未来认证密码或通知的可交付性至关重要。

在这篇博文中了解如何在5分钟内使用Twilio Verify API发送短信OTP

在验证工作流程中建立重试缓冲区

人类是没有耐心的,所以我们建议在你的电话验证界面中建立重试逻辑。当你在10分钟内尝试向同一个电话号码发送OTP超过5次而没有验证该号码时,Verify API会开始限制请求的速率。重试缓冲区有助于防止意外地向用户发送垃圾邮件和触及API速率限制。

one time passcode input field with message that reads resend code in 4 seconds

在注册流程中保持电话号码可见,并允许用户编辑电话号码

错别字时有发生,所以对于电话验证的用例(相对于持续登录或双因素认证),在界面中显示完整的电话号码,这样用户就可以发现并纠正任何错误,而不是无助地等待验证码。

one time passcode form field with link to edit the phone number

持续用户认证的最佳实践

存储用户的首选渠道偏好

一旦用户验证了他们的号码,存储任何首选渠道(无论是短信、语音、电子邮件、TOTP、推送),并在将来默认将代码发送到他们的首选渠道。如果用户决定喜欢不同的认证渠道,允许他们在界面上改变双因素认证(2FA)的发送渠道。

在持续的用户验证过程中屏蔽电话号码

与最初的电话验证不同,对于正在进行的认证或2FA,你应该屏蔽电话号码,以防止泄露PII。与电话验证不同的是,对于正在进行的认证,没有选项可以编辑电话号码。我们建议暴露3或4个号码,并掩盖其余号码,如+1 (5**) ***-**67********567

one time passcode form field with obfuscated phone number for 2FA or ongoing login use case

关于账户安全的其他建议

设计可用的安全性是一个持续的过程,随着技术的进步和你的客户的适应而发展。短信和语音是大多数账户安全用例的重要基础,而且不会很快消失

如果你对短信以外的验证感兴趣,请确保你检查一下。

我迫不及待地想看到你建立和确保的东西!