Firebase 存储身份验证
Firebase storage authentication
我想使用已验证用户的存储规则和自定义声明来限制对 Firebase 存储对象的访问。两个很酷的功能,适合缩放。
然而我的问题是:
Firebase 存储下载 link 允许 public 访问,无论规则如何。
我的下载 link 由 getDownloadURL() 给出:
https://firebasestorage.googleapis.com/v0/b/***myappname***.appspot.com/o/logos%2F1618740110634.png?alt=media&token=bdf6a5c5-54a2-4211-aa40-85177a38210a
我的规则是:
match /{allPaths=**} {
allow read, write: if false;
}
然后我应该使用什么 link 来限制对经过身份验证的用户的访问并检查我的管理员(excel 报告)文件的自定义声明?我很困惑。
已尝试直接 links,末尾没有令牌,给定的存储位置 link。
使用 public link,任何人都可以访问我不希望他们拥有。
使用 Flutter 移动端和网页端。
getDownloadURL()
总是returns一个publicURL。每个拥有它的人都可以访问该文件。
有短暂的 signed
令牌 URL 但它们在本机设备 SDK 上不受支持。
downloadURL
非常安全。如果有人没有它,就没有人会看到您的文件。所以这里的神奇之处在于不要在任何地方分享它,并且只使用参考来获得你想要的东西。只有当某人有权访问您的引用(根据存储规则)时,他才能生成 downloadURL
.
我建议在您的应用程序中仅使用这些引用,并且仅在您真正想要在应用程序中访问或打开文件时才获取 downloadURL
。
在 firebase 存储规则中,您可以使用 auth
和 customClaims
来定义谁可以访问文件引用。
生成 downloadURL
后,firebase 存储规则无关紧要。可以通过 link.
访问该文件
我想使用已验证用户的存储规则和自定义声明来限制对 Firebase 存储对象的访问。两个很酷的功能,适合缩放。
然而我的问题是:
Firebase 存储下载 link 允许 public 访问,无论规则如何。
我的下载 link 由 getDownloadURL() 给出: https://firebasestorage.googleapis.com/v0/b/***myappname***.appspot.com/o/logos%2F1618740110634.png?alt=media&token=bdf6a5c5-54a2-4211-aa40-85177a38210a
我的规则是:
match /{allPaths=**} {
allow read, write: if false;
}
然后我应该使用什么 link 来限制对经过身份验证的用户的访问并检查我的管理员(excel 报告)文件的自定义声明?我很困惑。
已尝试直接 links,末尾没有令牌,给定的存储位置 link。 使用 public link,任何人都可以访问我不希望他们拥有。
使用 Flutter 移动端和网页端。
getDownloadURL()
总是returns一个publicURL。每个拥有它的人都可以访问该文件。
有短暂的 signed
令牌 URL 但它们在本机设备 SDK 上不受支持。
downloadURL
非常安全。如果有人没有它,就没有人会看到您的文件。所以这里的神奇之处在于不要在任何地方分享它,并且只使用参考来获得你想要的东西。只有当某人有权访问您的引用(根据存储规则)时,他才能生成 downloadURL
.
我建议在您的应用程序中仅使用这些引用,并且仅在您真正想要在应用程序中访问或打开文件时才获取 downloadURL
。
在 firebase 存储规则中,您可以使用 auth
和 customClaims
来定义谁可以访问文件引用。
生成 downloadURL
后,firebase 存储规则无关紧要。可以通过 link.