如何撤销 Firebase 存储中特定文件夹/存储桶内所有文件的访问令牌

问题描述 投票:0回答:1

我有 Firebase 存储,其中保存了数百个受存储规则保护的文件。这些规则检查请求文件 (URL) 的用户在 Firestore 数据库中是否具有足够的权限。

问题是,如果用户尝试访问资源并获得授权,则会获得永久的公共链接(访问令牌),整个互联网上的每个人都可以捕获、泄露和访问该链接。永久链接是不可接受的,并且存在巨大的安全风险。

可以在 Firebase 控制台中通过单击“文件位置”下的“撤销”来撤销访问令牌(文件),这会使原始公共链接失效,并根据授权用户的下一个需求生成新的公共链接。哪个都可以。

问题是,有没有办法一次性撤销特定存储桶/文件夹内所有文件的访问令牌?或者以编程方式循环?

firebase firebase-storage
1个回答
0
投票

Firebase 为每个对象存储的下载令牌将作为元数据存储在对象本身上。 您所要做的就是编写一个程序来:

  1. 使用“列表文件”API 迭代存储中的每个对象
  2. 从对象中删除该令牌元数据(名为
    firebaseStorageDownloadTokens

参见:

请记住,下载令牌元数据未由 Firebase 记录,并被视为实现细节,因此您的代码将来可能无法运行。

© www.soinside.com 2019 - 2024. All rights reserved.