首页 > 解决方案 > 无密码电子邮件身份验证

问题描述

我已经完成了无密码电子邮件身份验证。我得到了链接。现在当我重定向到我的应用程序时。我需要将用户更新为 Firebase 身份验证。如果它的成功允许他们进入我的应用程序。同时需要获取当前登录的用户标识。

这是使用的代码:

逻辑是:

  1. 考虑我是使用电子邮件登录的新用户
  2. 考虑一下我已经使用我的 gmail 帐户登录。并且还已经向 Firebase 进行了身份验证。如果我使用相同的电子邮件地址。我会得到一些错误。

我期待:

如果我是新登录(之前没有使用我的电子邮件 ID 登录或验证),我需要对 firebase 进行身份验证并获取当前用户 ID。并且需要进入应用程序。

如果我已经使用我的 gmail 帐户登录。如果我再次使用我的密码登录,则更少验证相同的电子邮件。然后我还需要能够使用 firebase 进行身份验证并在我的应用程序中登录。并获取当前的用户 ID。

我怎样才能做到这一点。

我的编解码器:

函数验证链接用户(){

let emailId = UserDefaults.standard.object(forKey: "Email") as! String
let link = UserDefaults.standard.value(forKey: "Link") as? String  ?? "NA"
print("Url link")
print(link)
Auth.auth().signIn(withEmail: emailId, link: link) { (result, error) in
    if (error == nil && result != nil) {
        if( Auth.auth().currentUser?.isEmailVerified)! {
            print("user verified")
        }else {
            print("user not verified")
        }

    } else {
        print(error?.localizedDescription)
    }
}
}

错误:

 "The action code is invalid. This can happen if the code is malformed, expired, or has already been used."

我跟着这里:

https://medium.com/@huzaifa.ameen229/firebase-email-link-authentication-ac2504068562

https://github.com/firebase/quickstart-ios/blob/master/authentication/AuthenticationExampleSwift/PasswordlessViewController.swift

标签: iosswiftfirebasefirebase-authentication

解决方案


推荐阅读