社交登录重复帐户冲突

时间:2016-09-02 14:46:54

标签: php laravel authentication social-networking use-case

我正在制作一个新的应用,需要在常规电子邮件/密码注册旁边进行多次社交注册,但是有一个特殊情况可能会导致数据完整性问题......

示例:

  1. 用户注册Facebook但未返回任何电子邮件。
  2. 我在数据库中创建了一个电子邮件和密码设置为null的用户,以及一个包含其ID,令牌和提供商名称的社交个人资料条目。
  3. 然后用户下次用电子邮件和密码注册,所以我在用户表中为他创建了一条新记录。
  4. 现在他有2个同一个人的参赛作品。

    我应该如何处理这个案子?

2 个答案:

答案 0 :(得分:1)

正常情况下,如果电子邮件为空,因为用户使用其他东西是facebook登录(如电话号码)

如果属性电子邮件为空,您可以回退到错误消息,或者设置带有public_profile id的FacebookId,并要求用户将电子邮件地址添加到您的应用中。

不要使用电子邮件作为主键;)并且不要忘记,为所有用户提供内部登录/密码。 Facebook Twitter只是另一种登录方式,但不是主要机制。

答案 1 :(得分:0)

电子邮件是此处识别用户的唯一方式,因此处理此问题的最简单方法是强制用户提供其电子邮件(如果在Facebook的响应中未返回)。 您可以轻松地进行此检查并相应地重定向用户(到不同的视图/页面)以输入他的电子邮件,甚至要求用户添加一些其他可选字段。希望这有帮助