【问题标题】:Swift and Touch ID with FirebaseSwift 和 Touch ID 与 Firebase
【发布时间】:2017-01-28 04:36:47
【问题描述】:

我有兴趣将 Touch ID 选项添加到我的应用程序中。我发现了许多关于如何实现它以及如何处理错误的 SO 帖子和其他文章。我的问题是,如果用户登录,然后转到首选项 VC 并(如果设备支持)启用 Touch ID ....我如何从 Firebase 检索用户电子邮件和密码...或存储它?

我可能是错的,但我无法想象 Firebase 会允许我提取用户密码。那么,我是否可以将登录 VC 中的密码存储在常量中,然后将其从 VC 传递到 VC,以防万一用户想要启用 Touch ID?

这似乎也不是一个好选择..

编辑

我想澄清我的问题。

最初,在我的应用中,用户使用 Firebase 使用电子邮件和密码登录应用。稍后,如果用户想要,他/她可以启用 Touch ID,而不是键入 johnSmith@email.com 和 abc123,它会在此电话上知道用户是 johnSmith@email.com,密码是 abc123。

我的问题是:如何找回该用户的电子邮件和密码?我的数据库中没有包含电子邮件列表的孩子,也没有密码列表。

我能想到的唯一能得到用户的就是以下

 let user = FIRAuth.auth()?.currentUser

但这足以让 Touch ID 登录吗?那只是一个随机字符串,而不是他/她的电子邮件

我如何获得密码?

【问题讨论】:

  • 第一个问题是;如果用户已登录(登录到什么?)为什么还要找回他们的密码和电子邮件,因为他们已经登录了?此外,您是正确的,将密码明文存储在数据库中绝不是一个好选择。您可以对其进行加密,但即使这样也可能不是最佳做法。
  • @Jay 很抱歉,如果不清楚。如果用户通过 firebase 登录我的应用程序。所以他们输入了一个电子邮件和密码(已经创建了帐户)。以后如果他们决定而不是每次他们只想使用他们的拇指时都输入电子邮件和密码......我如何告诉我的应用程序,如果用户将他/她的拇指放在阅读器上以输入他/她的电子邮件和密码?
  • @Jay 因此,如果 2 个不同的用户启用了 Touch ID,用户 A 会按下他的拇指,它只会让他登录到那个手机,而用户 B 会按下她的拇指,它只会登录她只进入那个电话.....
  • 你是怎么做到的?

标签: swift firebase firebase-authentication touch-id


【解决方案1】:

只要 Firebase 不支持 TouchId,您就必须自己管理用户名和密码组合。当他/她启用 Touch Id 并自己存储用户名/密码时,您必须向用户询问用户名和密码一次。

存储敏感信息的方法是使用钥匙串,here 是 Apple 的一个示例项目,介绍了如何做到这一点。

下次通过 Touch Id 确认用户登录时,您从钥匙串中提取用户名/密码并对用户进行身份验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 2014-09-21
    • 1970-01-01
    相关资源
    最近更新 更多