gpt4 book ai didi

supabase - 无法在 Supbase 中使用经过身份验证的角色策略插入表

转载 作者:行者123 更新时间:2023-12-05 01:06:14 26 4
gpt4 key购买 nike

我试图在我的表中插入一行,它启用了 RLS 并且 Enable insert for authenticated users only政策补充。不幸的是,即使我正确登录,我也无法插入。

重现步骤:

  1. 创建提交表
create table submission (
stuff text
);
  1. 启用 RLS
alter table submissions
enable row level security
  1. 添加政策
CREATE POLICY "Enable insert for authenticated users only" ON public.submissions FOR INSERT WITH CHECK (auth.role() = 'authenticated');
  1. 在客户端,我使用魔术链接登录(对象已正确添加到本地存储中,所以我知道我正在登录)

  2. 我尝试插入

const { data, error } = await supabase
.from("submissions")
.insert({ stuff: 'hello' });

Authorization Bearer <Jwt>存在于 http 调用中。

  1. 但我出错了
{
"hint":null,
"message":"new row violates row-level security policy for table \"submissions\"",
"code":"42501",
"details":null
}

我在这里做错了什么?

最佳答案

我发现了问题所在。

问题是,supabase.insert 的默认行为返回我们刚刚插入的行,换句话说,它从表中选择(读取)它。由于我没有添加策略来读取表格,所以它失败了。

所以有两种解决方案:

  1. 添加一个新策略以便能够从该表中进行 SELECT
  2. { returns: "minimal"} 添加到 supabase.insert 以便它不会将行发回

关于supabase - 无法在 Supbase 中使用经过身份验证的角色策略插入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69527475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com