android - 如何通过 REST api 使用 SMS for Firebase 执行 2FA?

标签 android rest firebase https firebase-authentication

我正在编写一个有 SDK 限制的应用程序。我必须自己调用 REST API 并自己处理响应。我可以使用 Firebase 身份验证,并可以使用 REST 设置电子邮件/密码登录,但我需要通过手机号码执行 2FA 才能完成该过程。

通常,Firebase SDK 可以轻松处理此问题,但我只需要通过 REST API 来执行此操作。 Firebase doco向我展示了如何通过 REST 执行电子邮件/密码以及一系列其他相关的身份验证调用,但是我可以使用 REST 对手机号码执行 2FA 吗?如果是这样,有人可以指向文档或提供示例调用/响应吗?

如果不支持,通过云功能创建我自己的 SMS 验证是否是一个可接受的替代方案?

最佳答案

遗憾的是,它不受原生支持。如果您要求用户在采取行动之前拥有 2FA,您可以执行以下操作:

  1. 您设置安全规则以要求自定义声明 token 具有特定属性。
  2. 让用户在客户端使用标准用户名和密码登录。
  3. 在客户端获取token
  4. 通过 HTTP 请求将 token 发送到 firebase 函数
  5. 验证 firebase 函数中的 token
  6. 如果 token 有效且具有 uid 属性,请向 twilio authy 发出请求/在此处执行您的 2FA 逻辑。

这些说明是不完整的,因为 authy 有它自己的细微差别,您必须完成。但这就是它的要点。

这些资源可能会有帮助:

https://firebase.google.com/docs/auth/admin/verify-id-tokens https://www.twilio.com/docs/authy/tutorials/two-factor-authentication-node-express

注意:您可以通过在您的 firebase 数据库中存储一个临时代码,然后使用他们的 SMS API 通过 Twilio 发送一条短信来构建您自己的 2FA 解决方案。

关于android - 如何通过 REST api 使用 SMS for Firebase 执行 2FA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53550104/

相关文章:

c# - 更改 HttpWebRequest 的 HTTP 版本 (C#)

java - 如何使用 Spring Boot 在运行时创建指向系统中 REST 端点的 URL?

firebase - 有没有办法使用 Firebase 检查凭据?

android - android.os.Messenger 和 android.os.Handler 的旋转变化问题

Android自定义对话框显示android标题栏

c# - 将 RTF 直接读取到 Android 上的 TextView

android - 嵌套的 RecyclerView 不回收

c# - 在 WCF 启动时运行函数

ios - Firebase/Swift - 从 Firebase 输出数据出错

javascript - 如何检索 ionic 3 上的 firebase 列表,该列表会在发生更改时更新?