Membuat Function Handle New User Supabase

2 Desember 2025
Bagikan:
Membuat Function Handle New User Supabase

Secara default dalam melakukan autentifikasi pengguna, supabase menyimpan data penggunanya pada auth.users. Biasanya ketika membuat pengguna baru, kita memiliki dua buah opsi yakni ‘Send invitation dan create new user’. Ketika Send Invitation kita akan mengirim undangan melalui email lalu pengguna perlu mengklik dan user barupun tercipta, lalu opsi kedua yakni create new user : disini kita diberi pilihan untuk memasukan email dan password tanpa konfirmasi.

Baca juga : 

Dalam kesempatan kali ini saya akan memberikan sebuah tutorial bagaimana misalnya ketika kita membuat user baru pada tabel auth.users supabase maka akan ada semacam trigger ke tabel public dalam hal ini katakanlah profile / user yang menampung data profile dari autentifikasi supabase


#1 Buat Database (public) untuk profile pengguna

Jadi nanti ketika kita tambah user dari supabase auth.users maka pengguna baru akan ditambahkan ke public.user


CREATE TYPE public.user_role AS ENUM ('admin', 'operator');
-- ============================================================
-- TABLES
-- ============================================================
-- USERS
CREATE TABLE public.users (
 id uuid NOT NULL DEFAULT gen_random_uuid(),
 email text,
 phone text,
 first_name text,
 last_name text,
 role public.user_role NOT NULL DEFAULT 'operator',
 created_at timestamptz DEFAULT now(),
 updated_at timestamptz DEFAULT now(),
 CONSTRAINT users_pkey PRIMARY KEY (id),
 CONSTRAINT users_id_fkey FOREIGN KEY (id) REFERENCES auth.users(id)
);


#2 Buat Function Definer untuk Handle New User


Selanjutnya buat trigger yang nantinya akan memicu pembuatan user baru pada tabel public.users saat ada user baru yang ditambahkan ke tabel auth.users

create or replace function public.handle_new_user()
returns trigger
language plpgsql
security definer
as $$
begin
 insert into public.users (id, email, role)
 values (new.id, new.email, 'operator');
 return new;
end;
$$;


#3 Buat atau Aktifkan Trigger

Karena kita sudah buat definernya, maka langkah selanjutnya adalah buat atau aktifkan triggernya

CREATE TRIGGER on_auth_user_created
AFTER INSERT ON auth.users
FOR EACH ROW
EXECUTE FUNCTION public.handle_new_user();

Selesai, sekarang tinggal testing untuk menambah user baru dari supabase, nanti jika berhasil. Setiap kali Anda membuat user di supabase, maka akan otomatis masuk ke tabel public.users

Membuat Function Handle New User Supabase | Blog Pursem.com | Pursem