【问题标题】:How can I perform 2FA using SMS for Firebase via the REST api?如何通过 REST api 使用 SMS for Firebase 执行 2FA?
【发布时间】:2019-05-02 04:05:38
【问题描述】:

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

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

如果不支持,通过云功能创建我自己的 SMS 验证是否可以接受?

【问题讨论】:

    标签: android rest firebase https firebase-authentication


    【解决方案1】:

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

    1. 您将安全规则设置为要求自定义声明令牌具有特定属性。
    2. 让用户在客户端使用标准用户名和密码登录。
    3. 在客户端获取令牌
    4. 通过 HTTP 请求将令牌发送到 firebase 函数
    5. 在 firebase 函数中验证令牌
    6. 如果令牌有效且具有 uid 属性,请在此处向 twilio authy/do your 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 解决方案。

    【讨论】:

    • 感谢您的回复。我正在使用通过 cloudfunction 调用的 2FA 的 3rd 方服务,然后对 Firebase 执行 HTTP 登录/“帐户创建”。这可确保在从登录/新帐户创建会话之前验证用户。不完美,但我的目的可以接受。
    猜你喜欢
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 2013-06-18
    • 2021-07-15
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    相关资源
    最近更新 更多