当前位置: 首页 > 知识库问答 >
问题:

如果电子邮件未经验证,Apple将替换电子邮件提供商

席烨
2023-03-14

我在多个地方读到过这个问题,比如这里,但不知道该给用户什么用户体验。

我在iOS(Swift)上使用Firebase身份验证。在我的app中,用户创建账号的方式只有2种:

  1. 电子邮件(电子邮件/密码)
  2. 使用Apple登录

我不确定如何处理这种苹果替换FireBase中的电子邮件提供商的场景:

  1. 用户使用选项1(电子邮件)注册为john@gmail.com。我们使用api send email verification向用户发送电子邮件以验证其电子邮件。
  2. 由于某种原因,此用户没有打开电子邮件以验证其电子邮件。因此,未验证该电子邮件。
  3. 用户从html" target="_blank">应用程序注销。
  4. 用户不是用选项#1(电子邮件)登录,而是用选项#2(用Apple登录)登录。他们的苹果ID电子邮件与选项1(电子邮件)相同:john@gmail.com。我们使用API登录凭据。

在这个流程中,Apple替换了电子邮件提供商,因为他们的常规电子邮件和Apple ID电子邮件都是相同的(并且常规电子邮件没有被验证)。如果邮件被验证了,Firebase在这种情况下会自动链接邮件和苹果帐号...而不是取代。

Error Domain=FIRAuthErrorDomain Code=17007 "The email address is already in use by another account." UserInfo={NSLocalizedDescription=The email address is already in use by another account., FIRAuthErrorUserInfoNameKey=ERROR_EMAIL_ALREADY_IN_USE}

如果用户想用电子邮件登录,但现在不能,我不确定该在这里做什么来获得用户体验。我是否告诉用户:“对不起,由于您没有验证您的电子邮件,苹果公司取代了电子邮件提供商作为一个选项,现在您必须使用苹果公司登录您的帐户”?或者我们能为用户提供更好的用户体验吗?有没有任何东西可以轻松地允许这个用户使用电子邮件和苹果作为一种方式登录在这个特定的情况?

共有1个答案

巫马刚洁
2023-03-14

在这种情况下,您可以调用FetchSigninMethodsForeMail来获取与此电子邮件关联的IDP。它将返回带有apple.com提供程序ID的列表。您会通知用户他们需要用Apple登录到该帐户。

接下来,他们将需要使用苹果登录。使用这两种方法的唯一方法是,在他们使用电子邮件/密码注册后,在他们登录苹果之前,您验证电子邮件(通过电子邮件验证)。当验证帐户时,Apple凭据在登录时自动合并,密码保留在帐户上。

 类似资料:
  • 每当我在Firebase中使用电子邮件/密码身份验证提供程序时,提供程序都会在成功注册时发送一个无记名令牌,即使是。是否有一种开箱即用的方法将电子邮件/密码身份验证提供程序配置为在用户验证其电子邮件地址之前不发送无记名令牌(并返回403错误)? 请注意,我知道如何创建用户、登录用户、发送验证电子邮件等。。。使用firebase v9。x通过firebase/auth中的方法创建用户(使用Email

  • 我有一个关于Strapi电子邮件插件的问题。我想使用Nodemailer。当我用邮递员测试它时,我得到了错误500。我是否用错误的格式编写了PostScript JSON? 提前感谢! 本杰明

  • 我正在使用Firebase的方法来验证电子邮件。以下是代码: 这里,< code>else代码应该只在电子邮件未经验证时运行。但是,即使在我验证了电子邮件并重新开始活动之后,< code>if语句仍不为< code>true,电子邮件将再次发送。

  • 嗨,伙计们,我正在尝试在我的应用程序中进行自动登录,但在登录完成之前,我想知道用户是否验证了他的电子邮件或否。 问题是:即使我验证了我的帐户,代码也看不到这个并说是假的。 这是我的密码。 这条线总是假的,即使我验证了我的帐户。

  • 我正在试验Cognito,但我似乎不知道如何让Cognito向用户发送验证电子邮件,让他们验证他们的电子邮件地址。 这是在我的后端服务器中,我从新用户那里收到了用户名、电子邮件和密码。我正在抑制消息操作,因为我不希望用户收到临时密码。相反,我想将密码设置为他们已经提供给我的密码。 然而,用户从未收到验证其电子邮件地址的电子邮件。在用户池配置中,我在“要验证哪些属性”下选择了“电子邮件”我已经在SE

  • 问题内容: 我有这个EditText定义: 注意,EditText具有使用电子邮件地址规范定义的inputType。Android是否内置任何可验证电子邮件地址输入类型的内容,还是都必须手动完成?它允许我输入无效数据,所以我对它的用途感到好奇。 谢谢。 问题答案: 在这里,通过输入电子邮件类型,您可以将电子邮件类型的键盘设置为“ @”和“。”。关键字将显示在键盘上。 更好的解决方案是通过以下功能比