【问题标题】:Authenticate with mobile number(duplicate mobile number)手机号认证(手机号重复)
【发布时间】:2018-05-27 19:34:37
【问题描述】:

我在用户身份验证系统中有一些问题,例如有两个国家叫 X 和 Y,这两个国家的电话代码是 +9 和 +10(这只是示例)。这两个国家有两个人的名字叫R和M。R人手机是+9123456789,M人手机是+10123456789。

有一个叫P的网站,这两个用户来那个网站注册并输入手机号码。两人都输入了没有国家代码的手机号码,但本网站通过 IP 地址获取用户国家代码。

但问题是如果我们保存手机号码,因为用户输入的手机号码字段将重复。如果用国家代码保存,用户不知道,下次他来输入他在系统之前输入的同一个手机号码时,会说无效的手机号码。

我想知道绕过此方法的最佳方法。大多数网站都有这个问题。

谢谢

【问题讨论】:

    标签: php python ruby authentication mobile


    【解决方案1】:

    您能否为需要包含国家代码的电话号码添加验证? (对正则表达式的长度使用简单的验证)。另一种选择是使用两列主键(ID + 电话号码)。

    另外,您没有指定您使用的是哪种语言和框架,所以很难给您一个代码示例。

    【讨论】:

    • 您好 VIktor,感谢您的评论。我的问题将出现在这个世界上的每一种语言中。这个问题是因为这个世界上重复的手机号码。如果两个国家的人有相同的号码,那么这个问题就会出现,因为大多数人输入的手机号码都带有outout国家代码,所以我们不能保存带有国家代码字段的手机号码。我希望你能理解我的问题。谢谢
    • 我认为我们在这里遇到了语言障碍 :) 我想说的是,没有 2 个相同的电话号码,它们只有相同的部分。当您查看电话号码 +123(444 - 555 - 7777 - 66) 而不是仅向用户询问 (444..66) 部分时,需要一个完整的电话号码,包括国家代码 + 123 ( 44 . 66)这样每个人的电话号码都是唯一的。这样更好吗?
    • 这就是我获取手机号码的方式。 [1]:i.stack.imgur.com/hLDmW.jpg 用户可以输入手机号码或电子邮件地址。感谢您的建议。在您的建议中,他们下次要登录时必须输入带有国家代码的手机号码,对吗?谢谢
    • 没错,这是在 Rails stackoverflow.com/questions/50544860/… 中执行此操作的方法,而不是最大值,您需要一个最小值属性。或者,如果您想让您的用户更轻松,您可以将部分数字保留为有效输入,并在您的 html 中添加一个下拉列表并以这种方式获取他们的国家/地区代码。这是一个示例:gist.github.com/andyj/7108917 老实说,您可以使用多种不同的方式来实现这一点,只需选择最适合您的方式,同时确保其安全。
    猜你喜欢
    • 2018-07-13
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2013-04-14
    • 2017-02-06
    • 1970-01-01
    相关资源
    最近更新 更多