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

如何在Firebase中向用户发送验证邮件之前注销用户

黎承颜
2023-03-14

创建新用户时,我需要注销他们,然后发送验证电子邮件,以确保他们拥有电子邮件地址。目前,我的代码创建用户并执行“sendEmailVerification”调用,但保持用户登录。如何注销我的用户并检查他们是否验证了电子邮件?

func signUp(with email: String, password: String, firstName: String, lastName: String) {
    self.presentActivityView()
    Auth.auth().createUser(withEmail: email, password: password) {[unowned self] (user, error) in
        DispatchQueue.main.async { [unowned self] in
            self.dismissActivityView()
            if let err = error {
                self.addAlertController(title: "Error!", message: err.localizedDescription)
            } else {
                let changeReq = Auth.auth().currentUser?.createProfileChangeRequest()
                changeReq?.displayName = firstName + " " + lastName
                if let url = self.profilePicURLString {
                    changeReq?.photoURL = URL(string: url)
                }
                changeReq?.commitChanges(completion: { (error) in
                    if error == nil {
                        //Profile updated successfully
                    }else {
                        //Profile not updated successfully
                    }
                })
                Auth.auth().currentUser?.sendEmailVerification(completion: { (error) in
                    if error == nil {
                        //Verification initiated successfully
                    }else {
                        print("Error: \(error)")
                    }
                })
                let vc = MainStoryboard.instantiateViewController(withIdentifier: "SNStoryFeedController") as! SNStoryFeedController
                let nc = UINavigationController(rootViewController: vc)
                UIApplication.shared.keyWindow?.rootViewController = nc
            }
        }
    }
}

共有1个答案

汪博达
2023-03-14

您唯一应该做的就是从您自己的应用程序中注销:

// for FIRAuth
try? Auth.auth()?.signOut()

// for GoogleSignIn
GIDSignIn.sharedInstance().signOut()

safari部分由系统处理,你不需要担心。

 类似资料:
  • 伙计们,我在问我如何能发送验证到用户的邮件,换句话说,所有我在谷歌和youtube找到的东西,如何发送到你的电子邮件主机作为邮件陷阱等等。但是没有人解释如何使用用户的电子邮件。您对RQ有想法吗:我正在使用Laravel8和Laravel/UI引导程序

  • 是否可以在创建 Firebase 用户之前发送验证电子邮件并验证电子邮件?在我的代码中,我只能在从 Firebase 调用使用电子邮件和密码创建用户方法后发送电子邮件验证。即使我没有验证电子邮件,我仍然可以在 Firebase 控制台中看到该电子邮件的条目。

  • 我正在建立一个Vue.js/Firebase认证界面,其中包括一个电子邮件验证组件。到目前为止,我已经能够成功地设置我的界面,以便阻止用户登录,直到他/她单击发送到与输入地址相关的收件箱的电子邮件中的验证链接。但是,我注意到,即使在单击验证电子邮件中的链接之前,该电子邮件地址仍然显示在Firebase身份验证门户中。假邮件地址似乎也是如此,显然无法核实。我真的希望只有在单击验证电子邮件中的链接后,

  • 我创建了一个与我的 Flutter 应用配合使用的登录和注册屏幕,使用 Firebase 作为后端身份验证服务。我能够在登录,注册和重置密码屏幕之间切换。 问题 目前,注册屏幕接受输入的任何电子邮件地址,无论它是否真实。例如,如果我键入 gvevg@gverwbgw.com,它将允许用户注册。当涉及到虚假帐户和垃圾邮件等时,这显然是一个问题。 目标 我基本上想能够编辑我的代码,自动生成一个电子邮件

  • 我能够在注册前验证用户电子邮件。但我想收到验证电子邮件到我的电子邮件地址以完成注册过程。我想收到我的电子邮件地址的通知,并且只有在我批准后才完成注册过程。我检查了电子邮件验证:auth-service.ts 注册:

  • 我有一个使用Firebase电子邮件身份验证的Flutter移动应用程序。用户通过输入用户名、密码、当前国家和名字和姓氏来注册自己。当他们注册时,我会在用户集合下创建一个用户文档,其中将电子邮件作为ID、名字、国家/地区、通知令牌。但是,一旦他们验证了他们的电子邮件地址,那么只有他们才能使用应用程序的所有功能。 我的问题是,一些用户输入了不存在的垃圾邮件地址。因此,我最终在身份验证和Firesto