我正在编写一个有 SDK 限制的应用程序。我必须自己调用 REST API 并自己处理响应。我可以使用 Firebase 身份验证,并可以使用 REST 设置电子邮件/密码登录,但我需要通过手机号码执行 2FA 才能完成该过程。
通常,Firebase SDK 可以轻松处理此问题,但我只需要通过 REST API 来执行此操作。 Firebase doco向我展示了如何通过 REST 执行电子邮件/密码以及一系列其他相关的身份验证调用,但是我可以使用 REST 对手机号码执行 2FA 吗?如果是这样,有人可以指向文档或提供示例调用/响应吗?
如果不支持,通过云功能创建我自己的 SMS 验证是否是一个可接受的替代方案?
最佳答案
遗憾的是,它不受原生支持。如果您要求用户在采取行动之前拥有 2FA,您可以执行以下操作:
- 您设置安全规则以要求自定义声明 token 具有特定属性。
- 让用户在客户端使用标准用户名和密码登录。
- 在客户端获取token
- 通过 HTTP 请求将 token 发送到 firebase 函数
- 验证 firebase 函数中的 token
- 如果 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/