通过电话号码在Web App中使用Firebase登录以限制对站点的访问?

时间:2017-12-25 13:24:06

标签: firebase web mobile firebase-authentication

Firebase现在使用用户手机提供身份验证方法。用户打开网页,页面启动SMS验证过程。  Firebase存储用户电话号码(标识符)和随机生成的用户UID。如果您想验证用户的电话号码,这非常有用,但不能限制对已知电话号码白名单的访问。使用Firebase phone auth和非常方便的firebaseui-web library,您可以通过短信验证电话号码(任意电话号码)时获得授权。

我想我可以在浏览器客户端中执行测试,以查看电话号码(在SMS验证之后)是否通过对另一台服务器的API调用在授权白名单上;如果是有效的团队成员,请重定向到团队目录站点,然后转到"谢谢#34;网站,如果没有。我会说,在客户端浏览器中执行该查询JavaScript似乎是错误的做法。欺骗它太容易了。绝对不是一件好事,

我希望使用Firebase和手机短信授权来限制网页访问授权电话号码的白名单。我的用例是一群人,他们需要访问一个简单的网页,显示该组中其他人的电话号码。我们不希望这个世界变得可见,但是以一种方便的形式(即查找网页,按下<a href="tel:1-408-555-5555">1-408-555-5555</a>电话号码以便在手机上快速方便地访问将会很不错。我们打算通过渐进式Web应用程序方法使页面保持不变。

有关如何继续使用Firebase将网页限制为用户白名单的任何提示&#39;电话号码?

注意:我看到this response暗示可能会使用云功能来限制对内容的访问,但我不清楚这是如何工作的。

(编辑)嗯...也许我在思考这个问题。我可以使用node.js服务器作为具有res.redirect('SuccessPhoneList.html')的主机来处理回服务器的Ajax。这将修复我的客户端Javascript重定向问题。我可以做到这一点,但肯定希望Firebase能够在没有额外的Ajax调用的情况下处理这个问题。

1 个答案:

答案 0 :(得分:1)

Firebase托管中无法限制对文件的访问,Firebase身份验证中无法限制谁可以创建帐户。

通常,此用例通过以下方式解决:

  1. 将电话号码列表存储在数据库中,例如Firebase Realtime DatabaseCloud Firestore
  2. 使用Firebase's server-side security rules将电话号码在白名单中的用户限制访问该数据。
  3. 另见这些相关问题: