postgresql Supabase自定义声明

5cg8jx4n  于 2023-05-06  发布在  PostgreSQL
关注(0)|答案(2)|浏览(94)

我一直在寻找一种在数据库中实现RBAC的方法,然后我偶然发现了this。然而,当我试图在新用户的insert上运行的触发器函数中运行set_claim时,我得到了函数不存在的错误。
有一个开放的问题here,但想知道是否有人可以帮助,甚至与一些工作周围。

错误:

功能:

触发器:

sg2wtvxw

sg2wtvxw1#

我写了自定义索赔库,听起来你没有正确安装功能。您是否复制了install.sql文件的内容并在Supabase Jmeter 板的Query Editor屏幕中运行了该文件?这应该解决你的问题。

nimxete2

nimxete22#

我看到你正在尝试更新JWT元数据。我也遇到了同样的问题,一个解决方案是不使用set_claims函数,而是在这个函数中运行更新。
在本例中,user_role是ROLE_NAME,但可以替换它或从其他表中选择它。NEW.user_id是当前记录的user_id字段值。请确保在创建新记录或更新后运行此命令。

BEGIN
  update auth.users set raw_app_meta_data = 
    raw_app_meta_data || 
      json_build_object('user_role', '"ROLE_NAME"')::jsonb where id = NEW.user_id;
  RETURN NEW;
END;

相关问题