Open3
Supabaseでユーザーを削除する
Supabaseでユーザー削除を雑にメモする
const { data: user, error } = await supabase.auth.api.deleteUser(
'715ed5db-f090-4b8c-a067-640ecee36aa0'
)
注意点
- この関数はサーバー上で行う必要がある。
- next.jsなら
/api
に生やすと楽。
- next.jsなら
- service_role_keyが必要。
- フロントで使ったanon_keyとは違い、別途サーバーサイド用にcreateClientが必要になる。
export const supabase = createClient(
SUPABASE_URL,
SERVICE_ROLE_KEY // ここ
);
下記を叩くが、エラーが発生する。
const { data: user, error } = await supabase.auth.api.deleteUser(
user_id
)
↓
{"message":"Database error deleting user","status":500}
試しにsupabaseのWebから削除すると、下記のようなusersとprofilesのidによる外部キー制約で怒られている。
Failed to delete user:
update or delete on table "users" violates foreign key
constraint "profiles_id_fkey" on table "profiles"
postgrasqlcascale
profilesテーブル
の idを on delete cascade
で作り直す。
create table profiles (
id uuid references auth.users on delete cascade not null ,
...
)