Firebase 托管 - 密码保护网站?

Posted

技术标签:

【中文标题】Firebase 托管 - 密码保护网站?【英文标题】:Firebase Hosting - password protect website? 【发布时间】:2017-11-01 17:17:43 【问题描述】:

我刚刚将一个网站部署到 Firebase 托管,它运行良好 - 设置非常简单。

但是,我的问题是,有什么方法可以使访问受身份验证限制的网站?这是一个只有我的团队才能访问的管理面板。有什么方法可以对托管在 Firebase 上的网站进行密码保护或私有化?

谢谢!

【问题讨论】:

【参考方案1】:

对我来说解决这个问题的最简单方法是将我的应用程序从 Firebase 移动到 AWS Amplify。它允许您使用密码保护应用程序。在访问控制下,将其从“公开可见”更改为“受限”。 如果您正在寻找类似但在我看来比 firebase auth 更强大的功能,那么将 AWS cognito 集成到您的应用程序中;借助 AWS cognito,您可以防止新用户注册并将新用户电子邮件限制在特定域以及其他功能。

【讨论】:

【参考方案2】:

聚会迟到了,但在想要创建仅供我们域中的用户使用的仪表板时遇到了类似的问题(但不想管理个人帐户)。

最终使用标准的谷歌身份验证流程,但通过数据库规则限制数据访问。为了查看用户是否被授权,我们尝试在登录后直接访问数据(在我们向用户报告之前)。如果它以身份验证为由失败,我们的用户就是局外人。

Firebase 数据库规则:


  "rules": 
    ".read": "auth.token.email_verified == true && auth.token.email.matches(/.*@ourdomain.org$/)",
    ".write": false
  

见https://firebase.google.com/docs/reference/security/database/

注意:由于我们的组织通过 gsuite 运行我们的邮件,这无疑变得更容易了,但是您可以轻松地在此选项不可用的情况下定义更精细的规则。

【讨论】:

所以除了静态 Firebase 托管之外,您还在运行一个 Firebase 数据库?您如何防止将静态文件提供给用户?我是 firebase 堆栈的新手,你能详细说明一下你做了什么吗? 嗨康斯坦丁,我猜这个设置的想法是静态文件仍然可以公开访问,但数据本身是私有的。这是大多数管理区域的工作方式。如果有需要保护的静态文件,那么您可以使用 Firebase 云存储和与上述类似的规则集逻辑,这将提供相同级别的安全性。见firebase.google.com/docs/storage/security【参考方案3】:

目前这是不可能的,尽管它是一个流行的功能请求。我们对如何解决此类问题有一些想法,但目前没有要宣布的内容。

【讨论】:

嗯,尽管听到官方对一个受欢迎的请求的回应真是太好了,但我认为这不值得(目前)投票。我们期待您通过发布说明链接来编辑此答案!我已经保存了我的赞成票! :D 快3年了,还没有什么要宣布的吗?悲伤的时光。 当我发现 Firebase 托管无法像基本身份验证这样简单的事情时,我真的很惊讶,这通常是我为客户提供对仍在开发中的项目的私人访问的首选解决方案.这让我想知道还有什么其他限制会让我感到惊讶......? @michael Bleigh 运气好吗? 该死!我真的希望我们有这个 :( 那么我怎样才能限制对我的登台和开发项目的访问呢?

以上是关于Firebase 托管 - 密码保护网站?的主要内容,如果未能解决你的问题,请参考以下文章

如何保护部署到 Firebase Hosting 的 Flutter Web 的源代码?

在线密码托管网站

保护 Azure 存储帐户中托管的静态网站的路由

如何保护将 Firebase 存储用于以下应用程序的网站?

IIS 托管 - 网站要求登录提示

Firebase Auth on Web - 如何为电子邮件/密码登录添加垃圾邮件保护