【问题标题】:Why don't the firebase rules work when I do a kreait / firebase-php operation with the service account?当我使用服务帐户执行 kreait / firebase-php 操作时,为什么 firebase 规则不起作用?
【发布时间】:2020-03-10 15:39:08
【问题描述】:

对不起,我太天真了。我对使用 kreait/firebase-php 包进行身份验证有点困惑。我在 firebase 控制台定义了一些规则,例如:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
     match /{document=**} {
      allow create,delete:if request.auth.uid == true;
    }

  }
}

问题是,即使我更改规则,服务(CRUD)的行为也会以相同的方式工作。看来 JSON 文档(从 google 下载的服务帐户)具有所有权限或不需要 firebase 规则。

就我而言,我想将访问和数据库操作限制为没有身份验证和权限的用户。

我目前正在检查电子邮件/密码。如果请求为真,该方法将返回一个令牌。之后,我将令牌保存在 CACHE 中,并在用户注销时将其删除。对于每个请求,中间件都会检查令牌是否存在于 CACHE 中。这样,它只会帮助我限制用户的访问页面。如何限制数据库的操作(CRUD)?谢谢大家!

【问题讨论】:

    标签: firebase google-cloud-firestore firebase-authentication firebase-security


    【解决方案1】:

    这种行为是预期的。通过使用服务帐户初始化的代码访问 Firestore 将始终绕过安全规则。安全规则适用于通过 Web 和移动客户端 SDK 进行的访问,以及提供 Firebase 身份验证令牌时的 REST API。

    【讨论】:

    • 谢谢道格·史蒂文森!所以,我用PHP开发的网站不需要firebase的规则,我理解。如何管理用户权限?再次感谢您
    • 您必须构建适合您特定需求的东西。
    • 谢谢!好久不见
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 2020-12-04
    • 2018-01-30
    • 2018-03-12
    • 2017-01-25
    相关资源
    最近更新 更多