【发布时间】:2023-02-05 05:16:01
【问题描述】:
我有一个 supabase 项目,我希望用户能够删除他们的帐户。
每个用户在public.profiles 中都有个人资料。我想我可以让用户删除他们的个人资料,然后使用触发器处理帐户的删除。
所以我创建了这个:
CREATE OR REPLACE FUNCTION deleteUser() RETURNS TRIGGER AS $$
BEGIN
DELETE FROM auth.users WHERE auth.users.id = OLD.user_id;
RETURN OLD;
END $$ LANGUAGE 'plpgsql';
CREATE TRIGGER deleteUserTrigger
AFTER DELETE
ON public.profiles
FOR EACH ROW
EXECUTE PROCEDURE deleteUser();
在 supabase 表编辑器界面中,它工作得很好,但是当我通过我的应用程序删除一个帐户时,它失败了:code: "42501", message: "permission denied for table users"。
const { error } = await client.from("profiles").delete().eq("user_id", user.id);
console.log(error)
没有触发器就没有错误并且配置文件被删除(但该帐户显然仍然存在)。
任何帮助将非常感激!
我找到了 this 但我不确定..
【问题讨论】:
标签: authentication sql-delete supabase user-management