【问题标题】:How recovers password with firebase Auth Reset password mail in firebase database如何使用firebase Auth重置密码邮件在firebase数据库中恢复密码
【发布时间】:2018-04-07 22:55:27
【问题描述】:

我实际上是在 Swift 中开发一个 iOS 应用程序,它使用 Firebase 作为在线数据库。 所以概念是:用户可以使用firebase身份验证电子邮件和密码进行注册,然后我将电子邮件和密码写入数据库。 但是现在,我想使用 Firebase Auth 发送密码重置来实现重置邮件密码。 这个功能很好用,但我也想更新数据库中的密码。 我不知道该怎么做。 这是我的代码:

@IBOutlet weak var txt_mail: UITextField!
 Auth.auth().sendPasswordReset(withEmail: txt_mail.text!) { (error) in
            let alertController = UIAlertController(title: "Error", message: error?.localizedDescription, preferredStyle: .alert)
            let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
            alertController.addAction(defaultAction)
            self.present(alertController, animated: true, completion: nil)
        }

此代码向用户发送重置电子邮件,用户将从通过邮件发送给他的链接更改他的密码,我该如何恢复密码?

【问题讨论】:

    标签: ios swift firebase firebase-authentication


    【解决方案1】:

    首先,为什么要存储用户密码?您是否以纯文本形式存储它们?这当然不安全,我建议您不要这样做。

    Firebase 存储用户密码。它存储密码的哈希值。这是存储密码的正确方法,不能转换为纯文本。此外,没有用于获取用户密码的 API。这也是出于安全考虑。

    如果您不想听。那么你只有一个潜在的选择。您可以使用changePasswordForUser(),它允许您更新应用程序中的密码。然而,这需要 用户知道他们当前的密码。重置未知密码的唯一方法是使用resetPasswordForUser()

    但是,由于您已将密码保存在数据库中,也许您可​​以设计一种变通方法来使用该密码对用户进行身份验证,然后更新他们的密码,或者您可以要求用户在下次登录时更新他们的密码更新他们的密码后(您可以使用他们更新的密码重新验证他们,以确保它是准确的)。我再次建议这样做。

    查看这些链接了解更多信息:

    How to get an authenticated users password and email

    Manage Users in Firebase

    How to verify users current password?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 2018-11-02
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 2018-10-13
      • 2013-01-14
      相关资源
      最近更新 更多