不同社交账号登录时的邮件冲突

时间:2021-04-15 12:24:23

标签: django

我有 python-django 后端,它允许你通过 fb、苹果、电子邮件、谷歌登录。我的电子邮件字段是独一无二的,因此我不能有多个用户使用单个电子邮件。 当用户使用社交登录时,我会收到他的电子邮件并创建新用户。 问题是,如果你有两个社交和一个电子邮件,你不能同时使用它们登录。它的工作原理如下:

我们有使用相同电子邮件的 Facebook 和 appleId 使用苹果登录 -> 我使用 appleId、姓名、电子邮件创建用户 -> 用户按下注销 -> 用户按下 Facebook 登录 -> 我无法创建新用户,因为我已经在数据库中拥有该电子邮件。

所以问题是,我应该做什么以及在哪里可以找到它的示例。

详细信息:我有自定义 Django 用户,无论如何我都必须接收电子邮件。我不能使用 Django-social。

我认为在最后一步我应该提供用户个人资料,这是在第二步中制作的,但我不知道如何谷歌这个问题以及它是如何完成的常见做法

1 个答案:

答案 0 :(得分:0)

当有人通过 FB 或 Google 登录并且其电子邮件不在本地帐户中时,它会创建一个新的社交帐户。如果通过此登录时本地帐户中存在的电子邮件与 google 或 Facebook 帐户匹配,则仅对其进行身份验证(无需输入本地帐户密码)。我还在@receiver(user_signed_up) 期间将一些内容保存到用户中。 此代码解决了使用相同电子邮件 ID 的相同 google 和 Facebook 之间的冲突 我没有使用验证,你可以使用它

if(window.innerWidth < 768) {
  player.playVideo();
}