是否可以使用电子邮件和电话号码在Firebase中进行身份验证?

时间:2017-05-19 00:08:28

标签: ios firebase swift3 firebase-realtime-database firebase-authentication

我正在寻找一种快速方式让用户使用他/她的电话号码注册,然后添加他/她的电子邮件和密码。
但是当用户登录时,他/她只能使用电子邮件和密码登录。

电话号码仅出于安全原因。

1 个答案:

答案 0 :(得分:4)

您可以将电子邮件和密码链接到通过电话验证创建的用户帐户,但Firebase Auth在用户下次登录时不会强制执行2因素验证。用户可以使用(电子邮件/密码)登录或电话),不需要两者。 您需要为此实现自己的自定义解决方案。 请通过Firebase支持或官方Firebase Google Group提交2个身份验证请求。

如果您只想验证电话号码并将其链接到帐户但不需要下次登录,您可以在创建用户使用电子邮件和密码后,询问用户电话号码,然后致电:

[[FIRPhoneAuthProvider provider] verifyPhoneNumber:phoneNumber ...]

使用verifyID解析。然后在获取SMS代码后初始化手机身份验证凭据:

FIRPhoneAuthCredential *credential = [[FIRPhoneAuthProvider provider] credentialWithVerificationID:verificationID verificationCode:verificationCode];

最后你打电话: [[[FIRAuth auth] currentUser] linkWithCredential:credential]

使用电话凭证在currentUser上

。这会将该电话号码添加到电子邮件/密码用户。你可以认为它已经过验证。下次他们使用电子邮件/密码登录时,您可以通过user.phoneNumber访问它。