🍲

Supabase Authで新規登録すると自動で指定テーブルにデータをinsertする

2023/06/01に公開

そういうことがしたかった。でも新規登録は画面用意せずコンソールで招待するからちょっとやりかたわからんかった

以下が基本。
https://supabase.com/docs/guides/auth/managing-user-data#advanced-techniques

新規登録された際にユーザー情報を登録したいテーブルをprofilesとする

テーブル作成

create table public.profiles (
  id uuid not null references auth.users on delete cascade,
  first_name text,
  last_name text,
  email text not null,

  primary key (id)
);

alter table public.profiles enable row level security;

おまじないFuncitonとそれを新規登録の際に呼び出すトリガーを作成

-- inserts a row into public.profiles
create function public.handle_new_user()
returns trigger
language plpgsql
security definer set search_path = public
as $$
begin
  insert into public.profiles (id, email)
  values (new.id, new.email);
  return new;
end;
$$;

-- trigger the function every time a user is created
create trigger on_auth_user_created
  after insert on auth.users
  for each row execute procedure public.handle_new_user();

できたぽい。
説明はもっと詳しくなってたらする・・かも・・・・

Discussion