Firebase电子邮件链接身份验证

Firebase提供了很棒的api来管理应用程序的后端。 今天,我们将在iOS App中实现Firebase电子邮件链接身份验证功能。

在我们开始之前,没有多少关于此功能的信息。 当用户点击该链接时,您可以发送电子邮件验证链接,它将用户重定向到应用,然后用户可以使用EMAIL和LINK登录。
注意:这是少密码登录。

您可以按照以下Firebase文档中的功能进行操作:
我将描述实现iOS应用程序此功能的所有必要步骤,请按照以下指南进行操作:
注意:为此功能,必须在 App Store Connect 上创建iOS应用 程序, 因为Firebase在创建动态链接时需要App Store ID和Team ID。


我不会介绍如何使用Firebase文档设置iOS App的出色表现。 完成设置后,安装Pod’Firebase / Auth’。

通过转到Firebase控制台“身份验证”选项卡,从顶部选择“登录方法”,以启用电子邮件链接(无密码)登录。

这是此功能的核心部分,请按照以下每个步骤仔细实施:

  • 转到您的项目Firebase控制台,打开“动态链接”选项卡。
  • 添加您的域,主要是Firebase建议的域名。
  • 创建新的动态链接并设置短URL链接:
  • 现在设置动态链接,复制您的授权域并粘贴在深层链接URL字段中。 授权域路径:Firebase控制台>身份验证>登录方法>向下滚动。
  • 定义iOS链接行为,选择“在iOS应用中打开深层链接”,然后从下拉列表中选择应用捆绑包ID:
  • 现在不需要4和5了,都按下一步创建它。

现在,我们必须在Xcode项目功能和信息选项卡中做两件事。 首先复制“动态链接域”,然后转到“ Xcode功能”选项卡,在“关联域”中创建一个并编写应用链接:并粘贴您的域。

其次,我们必须创建一个URL方案,打开Xcode Info选项卡并展开URL Types创建一个副本,然后将您的iOS App bundle标识符粘贴到URL Schemes字段中。 确保从下拉列表中选择“编辑者”角色,然后根据需要命名该标识符。

现在您已经准备好了,在继续进行编码之前,让我向您展示App UI,以便您了解功能和代码的工作方式。

我已经创建了用于输入电子邮件的简单文本字段和两个按钮,即“发送链接”按钮(用于向用户发送电子邮件)和“登录”按钮(用于在验证后使用电子邮件登录)。 您可以根据自己的需求自定义它。我已经创建了一个演示来实现此Firebase功能。
我希望你已经
在iOS应用和Pod’Firebase / Auth’中设置Firebase。

当用户单击“发送链接”按钮时,我们将通过调用firebase Auth.auth.SendSignInLink Api函数将身份验证链接发送到用户的电子邮件,该函数接受电子邮件和Parameters中的ActionCodeSetting。 ActionCodeSetting向Firebase提供有关如何构造电子邮件链接的说明。 下面是“发送链接”按钮操作的代码片段:

现在,我们将收到带有身份验证链接的电子邮件,其中附有下面的快照供您参考。 单击登录到“您的项目名称”链接会将您重定向到您的应用程序。

现在我们已重定向到我们的应用程序,但仍未登录,为此,为了登录其所需的身份验证链接,我们必须在AppDelegate中编写两个函数。下面的代码是AppDelegate函数的快照,这些函数的用途当我们重定向到我们的应用程序时,将调用这些函数,并且在这些函数中,我们将调用Auth.auth.isSignIn,它们采用我们在电子邮件中收到的参数中的链接。 此外,我们还将捕获UserDefaults中的链接以进行下一步。

现在,我们必须检索UserDefault中捕获的链接,并调用Auth.auth.signin(withEmail:String,link:String),这将使用链接对用户的电子邮件进行身份验证并在Firebase中创建用户。 下面是“登录”按钮功能的代码捕捉:

第1步:启动您的应用,输入电子邮件并按登录,它将以标题“ Failure”调用警报,这表示尚未验证用户电子邮件。
第2步:输入您的电子邮件,然后按发送链接按钮,它将身份验证链接发送到用户的电子邮件,直到用户未验证电子邮件,用户才能登录。一旦用户单击身份验证链接并重定向到应用程序,然后按输入的相同电子邮件登录电子邮件字段,它将调用“成功”警报,这表示用户的电子邮件已通过验证。

这是我关于媒体的第一篇文章,希望对您有所帮助。 谢谢! 🙌

您可以在以下位置找到我:
推特