Supabase是一个开源的 Firebase 替代品,允许开发人员轻松构建可扩展且安全的应用程序。Supabase 的主要功能之一是它的存储服务,它使用户能够存储和检索文件。为了确保适当的访问控制和安全性,Supabase 提供了定义访问和操作文件规则的存储策略。这篇博文将探讨如何在 Supabase 存储策略中使用自定义声明来实现细粒度的访问控制。
Supabase 存储策略介绍
Supabase 存储策略基于 Postgres 行级安全 (RLS) 策略,该策略确定谁可以访问数据库表中的特定数据行。通过存储策略,您可以将此概念扩展到存储在 Supabase 存储服务中的文件。通过定义策略,您可以根据各种属性(例如存储桶 ID、文件路径和用户特定的自定义声明)强制执行规则。
访问控制的自定义声明
自定义声明是一项强大的功能,允许您将元数据添加到用户的会话令牌。这些声明可用于存储特定于用户的信息,例如角色、权限或与您的应用程序相关的任何其他上下文数据。
要在存储策略中利用自定义声明,您需要执行以下步骤:
定义自定义声明:
首先,定义要用于访问控制的自定义声明。例如,您可以创建一个名为“团队”的自定义声明,用于存储用户所属的团队。
管理自定义声明:
您可以在后端管理用户的声明,或使用触发器来管理关系并将它们映射到自定义声明上。
在存储策略中使用自定义声明:<