PassworLess电子邮件验证

时间:2019-02-25 11:24:35

标签: ios swift firebase firebase-authentication

我已经完成了密码少的电子邮件身份验证。我知道了链接。现在,当我重定向到我的应用程序时。我需要将用户更新为Firebase身份验证。如果成功的话,他们可以进入我的应用程序。需要同时获取当前登录的用户ID。

以下是使用的代码:

逻辑是:

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

我期望:

如果我是全新登录用户(不是使用我的电子邮件ID之前无法登录或认证),则需要进行身份验证才能登录Firebase并获取当前用户ID。并且需要进入应用程序。

如果我已经用我的gmail帐户登录了。如果我再次使用密码登录,请少用同一封电子邮件。然后,我还需要能够通过Firebase进行身份验证并在我的应用程序内部登录。并获取当前的用户ID。

我该怎么实现。

我的编解码器:

func VerifyLinkUser(){

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

0 个答案:

没有答案
相关问题