Zavedli jsme sociální přihlášení do našeho přihlašovacího systému Supabase, ve skutečnosti je možné automatizovat vytváření profilu.
To je super, protože většina poskytovatelů sociálních sítí nám již dává uživatelské jméno a profilový obrázek.
Vezměme si naše stávající přihlášení na GitHub jako příklad a podívejme se, jak automatizovat vytváření profilu.
Spouštěče a funkce v Supabase
Skvělá část na Supabase je, že je založena na Postgres a Postgres má tuto super skvělou funkci zvanou "Triggers".
To znamená, že můžete nastavit spouštěč pro konkrétní akci, u které se má akce uskutečnit.
Smíchejte to s funkcemi Supabase a můžeme spustit funkci pro vytvoření profilu při vytváření uživatele. ✨
Tyto spouštěče a funkce můžete vytvořit prostřednictvím rozhraní, ale nejjednodušším způsobem je spustit dotaz SQL.
Otevřete rozhraní dotazu a spusťte následující.
-- inserts a row into public.users
create function public.handle_new_user()
returns trigger
language plpgsql
security definer set search_path = public
as $$
begin
insert into public.profiles (id, username, avatar_url)
values (new.id, new.raw_user_meta_data ->> 'user_name', new.raw_user_meta_data ->> 'avatar_url');
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();
Zde vytvoříme novou funkci nazvanou handle_new_user
.
Tato funkce uvádí, že by se měla vložit do public.profiles
tabulku a přidejte id
, username
a avatar_url
.
Přebírá hodnoty z new
objekt, který odkazuje na položku, která to vyvolává, což bude auth.users
jeden.
A pak přidáme spouštěč, který se váže po každém vložení na auth.users
tabulky pro provedení funkce, kterou jsme právě vytvořili.
Jakmile spustíte tento dotaz, můžete je najít ve svém účtu Supabase v možnostech databáze.
Upravil jsem svou vlastní spuštěnou šablonu tak, aby se obrázek automaticky zobrazoval při registraci, a můžete vidět, že se to nyní stahuje z přihlášení.
Považuji to za velmi užitečné, protože nám to umožňuje zvládnout to na straně databáze a nezahrnuje nový kód pro naši aplikaci.
Tyto funkce a spouštěče můžete použít i pro jiné účely. Možná budete chtít aktualizovat počet nebo vyvolat externí akci.
K čemu byste je použili?
Děkujeme za přečtení a pojďme se spojit!
Děkuji, že čtete můj blog. Neváhejte se přihlásit k odběru mého e-mailového zpravodaje a připojte se na Facebooku nebo Twitteru