Jac*_*n D 5 javascript firebase supabase supabase-database edge-function
我来自 Firebase 函数...我可以在哪里使用管理库从函数访问数据库,绕过所有安全规则?在supabase 上我还没有找到一种方法来做到这一点,文档非常稀缺。现在,我使用此代码作为请求该函数的用户从函数访问数据库:
const supabaseClient = createClient(
Deno.env.get("SUPABASE_URL") ?? "",
Deno.env.get("SUPABASE_ANON_KEY") ?? "",
{ global: { headers: { Authorization: req.headers.get("Authorization")! } } }
);
Run Code Online (Sandbox Code Playgroud)
但是对于我的一个功能,我必须绕过所有策略进行访问,因为该功能是“admin”,当我删除此代码中的第三个参数行时(这是我发现的唯一模糊的解释如何做到这一点)我得到错误:
AuthApiError:无效声明:缺少子声明...
我也尝试更改SUPABASE_ANON_KEY为SUPABASE_SERVICE_ROLE_KEY,同样的错误。
使用服务角色密钥绕过安全规则,请确保您拥有有效的服务密钥角色。
您使用的密钥Deno.env.get("SUPABASE_ANON_KEY") ?? 它具有匿名访问权限,不会绕过安全规则。
const supabaseClient = createClient(
Deno.env.get("SUPABASE_URL") ?? "",
Deno.env.get("SUPABASE_SERVICE_ROLE_KEY") ?? "",
Deno.env.get("SUPABASE_SERVICE_ROLE_KEY") ?? "",
{ global: { headers: { Authorization: `Bearer ${Deno.env.get("SUPABASE_SERVICE_ROLE_KEY")}` } } });
Run Code Online (Sandbox Code Playgroud)
将“SUPABASE_SERVICE_ROLE_KEY”替换为实际服务角色密钥的值以绕过安全规则。
| 归档时间: |
|
| 查看次数: |
1331 次 |
| 最近记录: |