使Firebase手机身份验证更安全

时间:2018-03-18 14:58:11

标签: firebase firebase-authentication

我使用手机身份验证在Firebase中创建了一个帐户。但是,从文档中可以看出:

  

如果您在应用中使用基于电话号码的登录,则应提供该登录   以及更安全的登录方法,并告知用户   使用电话号码登录的安全权衡

我找不到将密码注入用户数据库的字段。

我应该启用密码/电子邮件登录方法吗?有没有可以参考的文件?

我使用以下方法添加了电子邮件和密码:

createUserWithEmail:email:password:completion:

创建了2个帐户:

我应该将我的问题改为:

如果用户退出,当他们再次登录时,他们应该使用电话号码,电子邮件和密码吗?

2 个答案:

答案 0 :(得分:3)

这就是它在文档中所说的内容:

  

仅使用电话号码进行身份验证虽然方便,但不如其他可用方法,因为拥有电话号码可以在用户之间轻松传输。此外,在具有多个用户个人资料的设备上,任何可以接收短信的用户都可以使用设备的电话号码登录帐户。

     

如果您在应用中使用基于电话号码的登录,则应提供更安全的登录方式,并告知用户使用电话号码登录的安全权衡。

所以这意味着最好使用另一种方法,比如电子邮件/密码方法。

当你启用它时,用户可以使用他的电子邮件创建一个帐户,并且你不需要密码,只需要创建一个帐户后的用户ID。

更多信息:

https://firebase.google.com/docs/auth/ios/password-auth

答案 1 :(得分:0)

基于@Peter Haddad回答:

更新了用于链接手机通过身份验证的用户和电子邮件/密码身份验证方法的代码。

FIRAuthCredential *credential =
[FIREmailAuthProvider credentialWithEmail:userEmail
                                 password:userPassword];

[[FIRAuth auth]
 .currentUser linkWithCredential:credential
 completion:^(FIRUser *_Nullable user, NSError *_Nullable error) {
     // ...
     FIRUser *tmpUser = user;

 }];

您应该在控制台中看到这些内容(只有一行有2种身份验证类型而不是2行):

enter image description here