Catatan Programmer

Supabase tidak menggunakan tabel buatan sendiri untuk login secara default

 

Supabase tidak menggunakan tabel buatan sendiri untuk login secara default. Saat kamu menggunakan:

supabase.auth.signInWithPassword(email: ..., password: ...);

maka akun login kamu disimpan di tabel khusus internal Supabase, yaitu:

🧱 Tabel Auth Internal: auth.users

  • Ini adalah tabel sistem milik Supabase, bukan tabel buatan kamu.

  • Tidak bisa diakses langsung lewat Supabase Dashboard kecuali kamu aktifkan Row Level Security (RLS) dan buat PostgREST API khusus.

  • Kalau kamu buka Supabase Dashboard > Authentication > Users, itu sebenarnya membaca dari auth.users.


🔌 Jadi, kode mana yang terhubung ke tabel itu?

Supabase SDK (supabase_flutter) secara otomatis mengirimkan request ke endpoint auth/v1/token atau auth/v1/signup milik Supabase. Ini tidak kamu akses secara langsung, tapi lewat baris seperti ini:

await Supabase.instance.client.auth.signInWithPassword(email: ..., password: ...);

Itu sudah menghubungkan ke tabel internal auth.users milik Supabase.


❓Bagaimana jika saya ingin menyimpan data user sendiri?

Jika kamu ingin menyimpan data tambahan seperti username, foto profil, alamat, dll, kamu perlu:

1. Buat tabel sendiri misalnya profiles

create table profiles (
  id uuid primary key references auth.users(id),
  username text,
  full_name text,
  avatar_url text
);

2. Tambahkan trigger Supabase untuk auto-insert

create function public.handle_new_user()
returns trigger as $$
begin
  insert into public.profiles (id)
  values (new.id);
  return new;
end;
$$ language plpgsql;

create trigger on_auth_user_created
after insert on auth.users
for each row execute function public.handle_new_user();

3. Akses profiles dari Flutter

final profile = await Supabase.instance.client
    .from('profiles')
    .select()
    .eq('id', Supabase.instance.client.auth.currentUser!.id)
    .single();

🔁 Kesimpulan

Hal Tempat
Login/Signup auth.users (internal table)
Tambahan user info Buat tabel sendiri, contoh: profiles
Mengatur koneksi ke tabel Pakai .from('profiles') jika custom table, untuk login tidak perlu karena sudah lewat auth.*

selanjutnya jika ingin contoh kode Flutter yang juga menyimpan info ke tabel profiles setelah register

 

 

 

No comments:

Post a Comment

About