Auth0数据库和社交连接,唯一的电子邮件地址

时间:2018-01-22 22:29:27

标签: auth0

也许我在这里遗漏了一些东西,或者这是Auth0中的一个缺陷?我将举例说明我的问题:

假设我有Default App客户端),我已经{{1>}(数据库连接)和{{1 (社交关系)。

用户访问我的网站,使用 joe@gmail.com 通过Username-Password-Authentication社交关系)注册。完成后,他会在Auth0中添加到我的用户,非常棒。

几个月后,乔回到我的网站,作为一个忙碌的人,他忘记了以前注册我的网站。这一次,他决定使用我的自定义电子邮件和密码表单进行注册,该表单会将用户添加到google-oauth2数据库连接)。所以他再次使用 joe@gmail.com 在那里注册,一切顺利,他现在列在我的Auth0仪表板的用户部分。

这是问题,我现在有两个 joe@gmail.com 帐户,一个帐户google-oauth2,另一个帐户Username-Password-Authentication。我真的不能拥有这个,我需要一个唯一的电子邮件地址,无论ID Auth0供应。

有没有人知道如何在我的用户部分制作100%唯一的电子邮件地址?我认为规则会这样做,但似乎规则只适用于用户注册后,所以我在添加之前无法运行规则?

我现在唯一可以看到这样做的方法就是通过管理API进行自己的检查和删除,但这是一种非常漫长而混乱的方式。

任何帮助都将在这里受到赞赏!

谢谢!

2 个答案:

答案 0 :(得分:0)

您要查找的选项称为帐户关联。 您可以在https://auth0.com/docs/link-accounts

找到更多信息

答案 1 :(得分:0)

Auth0的默认行为是在数据库中为每个唯一条目创建一个新帐户。由于使用Google创建的用户具有唯一的ID(基于google-oauth2),并且使用注册表单创建的用户具有唯一的ID-从技术上讲,它们将被视为两个单独的帐户。为了解决这种差异,您可以建立一种可以合并帐户数据的方式。在上面提供的链接的文档中,提供了三种可能的方法示例:

  1. Automatic Linking-涉及创建一个特定的rule以根据匹配的电子邮件合并用户
  2. User-Initiated Linking-涉及提供一个用户界面,供用户选择将用户与匹配的电子邮件合并
  3. Suggested Account Linking-涉及设置链接到UI的规则

要考虑的一件事是,从不同的社会身份提供者返回的数据可能无法像将数据标准化到Username-Password-Database一样进行标准化。例如,虽然auth0的电子邮件默认设置为小写信息,但是google-oauth2可能会将电子邮件返回为大写形式-使用严格相等性进行检查时,可能会产生不匹配的电子邮件

相关问题