我使用手机身份验证在Firebase中创建了一个帐户。但是,从文档中可以看出:
如果您在应用中使用基于电话号码的登录,则应提供该登录 以及更安全的登录方法,并告知用户 使用电话号码登录的安全权衡
我找不到将密码注入用户数据库的字段。
我应该启用密码/电子邮件登录方法吗?有没有可以参考的文件?
我使用以下方法添加了电子邮件和密码:
createUserWithEmail:email:password:completion:
创建了2个帐户:
我应该将我的问题改为:
如果用户退出,当他们再次登录时,他们应该使用电话号码,电子邮件和密码吗?
答案 0 :(得分:3)
这就是它在文档中所说的内容:
仅使用电话号码进行身份验证虽然方便,但不如其他可用方法,因为拥有电话号码可以在用户之间轻松传输。此外,在具有多个用户个人资料的设备上,任何可以接收短信的用户都可以使用设备的电话号码登录帐户。
如果您在应用中使用基于电话号码的登录,则应提供更安全的登录方式,并告知用户使用电话号码登录的安全权衡。
所以这意味着最好使用另一种方法,比如电子邮件/密码方法。
当你启用它时,用户可以使用他的电子邮件创建一个帐户,并且你不需要密码,只需要创建一个帐户后的用户ID。
更多信息:
答案 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行):