Django 使基于电话号码的登录友好并保持电话号码的唯一性

Django 使基于电话号码的登录友好并保持电话号码的唯一性,django,database,Django,Database,对不起,这不是技术问题 我收到了一个意外的请求,要求web(基于django)应用程序的用户能够使用他们的电话号码登录。它一直运作良好,直到有一个号码相似的人从另一个国家但在同一个网络下登录。也就是说,号码078*******已经存在,并且拒绝注册。事实上,手机是不同的,因为它们在不同的国家。添加国家代码后,它们确实保持唯一性 然而,在登录期间,我真的希望避免要求他们包含国家代码;一定喜欢facebook登录。处理这个问题最明智的方法是什么?你可以在电话号码前定位国家代码框,如果需要,他们可以更

对不起,这不是技术问题

我收到了一个意外的请求,要求web(基于django)应用程序的用户能够使用他们的电话号码登录。它一直运作良好,直到有一个号码相似的人从另一个国家但在同一个网络下登录。也就是说,号码078*******已经存在,并且拒绝注册。事实上,手机是不同的,因为它们在不同的国家。添加国家代码后,它们确实保持唯一性


然而,在登录期间,我真的希望避免要求他们包含国家代码;一定喜欢facebook登录。处理这个问题最明智的方法是什么?

你可以在电话号码前定位国家代码框,如果需要,他们可以更正。如果你不想让它们过载,你甚至可以让它看起来像一面旗帜


您需要确定它们在某种程度上是不同的,地理位置是一种简单的方法,无需询问它们。

您可以使用找到的phone-iso3166软件包将国家名称与电话号码联系起来。 通过使用电话号码和国家代码作为主键,您将能够唯一地处理他们的注册


<> P>登录时考虑,可以尝试通过浏览器上的JavaScript使用地理位置来知道他们来自哪个国家并验证它们。这可能不是故障安全方法,因为用户可能是从其他国家登录的。要处理这个问题,您可以在身份验证系统中找到一个变通方法,检查与数据库中的用户条目相匹配的所有可能的电话号码,并尝试对它们进行身份验证,只要合适,就将它们添加到会话中。这增加了处理忘记密码的另一个复杂性,您需要通过电子邮件而不是电话号码来处理

我看到的一个问题是,他们是否正在使用代理/vpn。也许在第一次登录时设置cookie会更好?这正是我遇到的困境。感谢enlight检查所有可能的电话号码;虽然在某种程度上这将是一个缓慢的过程,更不用说VPN相关的头痛问题了。检查多个用户可能恰好是一个缓慢的过程。