使用Firebase的Swift和Touch ID

时间:2017-01-28 04:36:48

标签: swift firebase firebase-authentication touch-id

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

我可能错了,但我无法想象Firebase会允许我提取用户的密码。那么,我只是将VC中的日志密码存储在常量中,并将其从VC传递给VC,以防用户想要启用Touch ID吗?

这似乎不是一个很好的选择..

修改

我想澄清一下我的问题。

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

我的问题是:如何检索用户的电子邮件和密码?我的数据库中没有孩子的电子邮件列表,我没有密码列表。

我能想到的唯一能够获得用户的是

 let user = FIRAuth.auth()?.currentUser

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

我如何获取密码?

1 个答案:

答案 0 :(得分:1)

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

存储敏感信息的方法是使用Keychain,here是Apple的示例项目,如何执行此操作。

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