在用户使用Firebase Auth和Swift验证其电子邮件后,如何重定向回我的应用程序?

时间:2017-10-28 18:20:43

标签: ios swift firebase firebase-authentication

当用户在我的应用中注册时,会弹出一个说明,请验证您的电子邮件然后登录。当用户单击“确定”时,它将使用户登录页面。此时,用户应转到Mail应用程序(iPhone),然后单击从Firebase发送给他们的链接。点击此链接当前打开Safari并告诉用户帐户已经过验证,然后用户必须手动返回应用程序。如何验证用户并将其带回应用程序?

我已经阅读了有关continueURL以及Firebase提供的文档,但它没有任何意义,我对我需要做的事情感到困惑。如果有人可以解释如何做到这一点,那就更简单了,非常感激。

这就是我发送电子邮件的方式:user?.sendEmailVerification(completion:nil)

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您可以让链接直接转到iOS应用,但可以通过将git branch设置为handleCodeInApp来处理应用中的代码。为简单起见,我们来说明如何首先打开网页中的链接(YEShandleCodeInApp这是默认设置),验证电子邮件然后重定向回移动应用以继续到用户的预定目的地。

NO

在上述流程中,验证链接将发送给用户。用户将单击该链接。它将打开配置的网页,其中将验证电子邮件。将显示一个继续按钮,如果设备上安装了iOS应用程序,则会在点击时将其重定向回应用程序。

您将使用Firebase动态链接拦截该链接。详细了解如何在iOS中配置FDL并在此处理链接:

https://firebase.google.com/docs/dynamic-links/ios/receive https://firebase.google.com/docs/auth/ios/passing-state-in-email-actions#configuring_firebase_dynamic_links

Firebase动态链接将与以下网址建立深层链接: var actionCodeSettings = ActionCodeSettings.init() actionCodeSettings.canHandleInApp = false let user = Auth.auth().currentUser() // This URL will be the deep link of the FDL. It is useful for // passing state back to your iOS app to let it know that you were // verifying a user of email user.email. This is also useful // in case the user clicks the continue button a non iOS device. // You should own this link. actionCodeSettings.URL = String(format: "https://www.example.com/?email=%@", user.email) // This is your iOS app bundle ID. It will try to redirect to your // app via Firebase dynamic link. actionCodeSettings.setIOSBundleID("com.example.ios") user.sendEmailVerification(withActionCodeSettings:actionCodeSettings { error in if error { // Error occurred. Inspect error.code and handle error. return } // Email verification sent. })