【问题标题】:How to get Firebase secure data from angular or any other web platform如何从 Angular 或任何其他网络平台获取 Firebase 安全数据
【发布时间】:2020-05-02 11:01:09
【问题描述】:

这是我在 Firebase 中的安全规则和条件

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /Product/{document=**} {
      allow read: if true; 
      allow write: if request.auth.uid != null;
    }
  }
}

根据 Firestore 文档,我们可以在 once by this method 检索数据。

db.collection("Product").get().then(function(querySnapshot) {
    querySnapshot.forEach(function(doc) {
        console.log(doc.id, " => ", doc.data());
    });
});

如何从 Firebase 检索受保护的数据。如果它有一个有效的 uid,它会返回给你数据。在每个请求上发送我的用户状态或 uid 的正确方法是什么

【问题讨论】:

  • 你的意思是你只想发送数据他自己的数据?如果 UID 是 1234,那么他只能访问名为 1234 的文档。像这样??
  • 没有。任何注册的用户都可以访问数据
  • 任何注册用户都可以读取数据。好的,谁可以写入或修改数据?
  • 为简单起见,我只需要注册用户可以读写
  • 你只需要在规则中添加这个:allow read, write: if request.auth.uid != null; ... 现在只有注册用户可以读/写。

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


【解决方案1】:

发送我的用户状态或 uid 的正确方法是什么? 请求。

您必须将Security RulesFirebase Authentication 结合起来。

因此,使用 Firebase 身份验证您涵盖了系统安全的 身份验证 部分(即确认用户身份),而使用安全规则您涵盖了 授权 部分(即授予对系统的访问权限)。

来自documentation

要让用户登录您的应用,您首先需要获得身份验证凭据 来自用户。这些凭据可以是用户的电子邮件地址和 密码或来自联合身份提供者的 OAuth 令牌。然后, 您将这些凭据传递给 Firebase 身份验证 SDK。我们的 然后后端服务将验证这些凭据并返回 回复客户。

成功登录后,您可以访问用户的基本资料 信息,并且您可以控制用户对存储在 其他 Firebase 产品。您还可以使用提供的身份验证 用于在您自己的后端服务中验证用户身份的令牌。

因此,具体而言,您需要选择所需的登录方法(即密码、电话号码、联合身份提供商,如 Google、Facebook 和 Twitter 等),然后实现一个(或多个)相应的登录应用程序中的功能。请注意,您也可以使用自己的身份验证机制,因为 JSON Web 令牌 (JWT) 可以在您自己的服务器上生成并用于通过 signInWithCustomToken() 方法对用户进行身份验证。

登录后,身份验证令牌将自动包含在对 Firebase 后端服务(Firestore、Cloud Storage 等)的请求中。

“Firebase 身份验证入门”page 中的更多详细信息。


您还可以在网上找到一些教程:https://www.google.com/search?q=angular+firebase+authentication+example

【讨论】:

  • 可能是,我无法正确解释。登录后,我可以检索受保护的数据。当我刷新浏览器时,我无法检索预期的数据,因为当时 Firebase 无法找到获取 UID
  • 是否使用特定的持久化类型,见firebase.google.com/docs/reference/js/…
  • @AhmadSharif 请编辑您的问题。你在这里说的信息可能不是每个人都看到的。您的问题与刷新无关:-(
猜你喜欢
  • 2019-09-18
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 2012-08-21
  • 2013-06-10
  • 2018-12-04
  • 2022-12-10
相关资源
最近更新 更多