带电话号码的Firebase辅助身份验证

时间:2018-02-15 21:01:22

标签: android firebase firebase-authentication

在我的Android应用中,有一个用户设置,用户可以在其中启用双因素身份验证。我正在使用Firebase电子邮件/身份验证。

因此,一旦成功登录后,如果启用双因素身份验证的用户需要获取其注册手机号码的PIN,以继续进入应用程序。

通过文档Authenticate with Firebase on Android using a Phone Number,我可以看到使用电话号码登录的方法。

但如何将其与电子邮件/密码验证集成。我需要更好的指导。

2 个答案:

答案 0 :(得分:1)

由@Bernd找到了answer

如果您希望电话号码成为身份验证的第二要素,则需要有一个自定义身份验证提供程序,它可以进行身份​​验证。上还有一个getting started guide,但是2因素验证部分本身将由您决定。

答案 1 :(得分:1)

为什么不合并它们并使用SharedPreferences来监视状态?

您应该能够在SharedPreferences中存储以下三个值中的任何一个:SIGNED_OUT,PENDING,SIGNED_IN。

这是我的建议流程:

  • 当用户未登录时,SharedPreferences参考中的值应为 SIGNED_OUT
  • 用户使用电子邮件密码登录。如果成功,待处理将保存在SharedPreferences中;这意味着该用户尚未完全通过身份验证。由于这个值,MainActivity(或其等效项)将永远不会显示。
  • 提示用户使用电话号码登录。如果成功,则SharedPreferences中的值将再次更改为 SIGNED_IN ,这表示用户已完全登录。

为使流程顺畅,如果经过一段时间(例如10分钟)后身份验证状态未更改,则可以使用服务将SharedPreferences引用的值从PENDING重置为SIGNED_OUT。

我希望这会有所帮助。快活的编码!

相关问题