首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Supabase上启用RLS时请求406 JSON对象、多行(或否)

在Supabase上启用RLS时请求406 JSON对象、多行(或否)
EN

Stack Overflow用户
提问于 2022-06-17 04:44:27
回答 1查看 440关注 0票数 0

我研究了有关StackOverflow、github问题的各种解决方案,包括supabase、supabase/postgrest、postgRESTPostgREST/postgrest,并搜索了不一致之处。但到目前为止,这些解决方案都没有奏效。

代码按照预期工作,但只要我打开Supabase上的RLS就可以了。请求将返回以下406错误。

代码语言:javascript
运行
复制
export const supabase = createClient(process.env.NEXT_PUBLIC_SUPABASE_URL, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY)

const { data, error } = await supabase.from('profiles').select('*').eq('id', userId).maybeSingle()
// const { data, error } = await supabase.from('profiles').select('*').eq('id', userId).limit(1).single() // works when RLS disabled
// const { data, error } = await supabase.from('profiles').select('*').eq('id', userId).single() // works when RLS disabled

RLS之前的反应

代码语言:javascript
运行
复制
{
    "id": "123-123-1241-1231",
    "created_at": "2022-06-10T03:59:22.751125+00:00",
    "is_subscribed": false,
    "interval": null,
    "email": "test@example.com"
}

打开RLS后的响应

代码语言:javascript
运行
复制
{
    "message": "JSON object requested, multiple (or no) rows returned",
    "details": "Results contain 0 rows, application/vnd.pgrst.object+json requires 1 row"
}

我尝试过重新加载模式,重新实现策略,但到目前为止还没有一个在工作。

我有一个“配置文件”表,它的"id“列引用了"auth.users.id”。

策略的目标角色目前是"anon“,但我也尝试过”身份验证“。

代码语言:javascript
运行
复制
(uid() = id)

我还试图将表名改为“概要文件”(复数),而不是“配置文件”,但没有运气。

EN

回答 1

Stack Overflow用户

发布于 2022-06-18 01:00:26

从苏巴塞的不和中得到帮助解决了这个问题。

谢谢不和的@garyaustin

,我的猜测是,在进行调用时,您没有登录用户(或jwt)。如果将策略设置为true和anon,则确认在呼叫点没有登录用户。

我正在使用NextJS和cookie在客户端请求上附加,但是没有在服务器端请求上附加jwt。

包含令牌和RLS使用的是authenticated角色。

supabase.auth.setAuth(access_token)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72654424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档