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

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

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

电话号码只是出于安全原因。

最佳答案

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

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

[[FIRPhoneAuthProvider 提供者] verifyPhoneNumber:phoneNumber ...]

用 verificationID 解析。然后在获取短信代码后初始化手机身份验证凭证:

FIRPhoneAuthCredential *凭证 = [[FIRPhoneAuthProvider 提供者] credentialWithVerificationID:verificationID verificationCode:verificationCode];

最后你调用: [[[FIRAuth auth] currentUser] linkWithCredential:credential]

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

关于ios - 是否可以在 Firebase 中使用电子邮件和电话号码进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44059519/

相关文章:

ios - UnitTest 我应该使用拆解和设置吗

ios - FB 登录不适用于 React Native iOS v13+

ios - 为什么我的 UISearchBar 的框架被 UISearchDisplayController 改变了

swift - 无法将文本字段的值设置为 Firebase 搜索结果 - Swift

firebase - Firestore 同步仅不同吗?

ios - 循环函数中的异步调用。仅在异步完成时返回

ios - 触摸并按住 TableViewCell 以显示(工具提示)弹出窗口在 iPhone 中是否可行?

javascript - 构建 Electron 应用程序后,Firebase无法进行身份验证

ios - 使用 .sks 文件布局复杂对象与 SKScene 文件

php - Swift 3.0 - 无法通过 PHP 将 "plus"(+) 发送到 mySQL