我有 Firebase 存储,其中保存了数百个受存储规则保护的文件。这些规则检查请求文件 (URL) 的用户在 Firestore 数据库中是否具有足够的权限。
问题是,如果用户尝试访问资源并获得授权,则会获得永久的公共链接(访问令牌),整个互联网上的每个人都可以捕获、泄露和访问该链接。永久链接是不可接受的,并且存在巨大的安全风险。
可以在 Firebase 控制台中通过单击“文件位置”下的“撤销”来撤销访问令牌(文件),这会使原始公共链接失效,并根据授权用户的下一个需求生成新的公共链接。哪个都可以。
问题是,有没有办法一次性撤销特定存储桶/文件夹内所有文件的访问令牌?或者以编程方式循环?
Firebase 为每个对象存储的下载令牌将作为元数据存储在对象本身上。 您所要做的就是编写一个程序来:
firebaseStorageDownloadTokens
)参见:
请记住,下载令牌元数据未由 Firebase 记录,并被视为实现细节,因此您的代码将来可能无法运行。