Soy bastante nuevo en SvelteKit y Supabase y he experimentado un poco por mi cuenta, pero me gustaría saber cuál es la mejor manera de implementar la autenticación de usuario con ambas tecnologías.
Actualmente tengo lo siguiente en mi archivo __layout.svelte para que todas las páginas de mi aplicación web tengan acceso a la sesión, pero no estoy seguro de cómo implementar la autenticación de usuario persistente con una cookie.
Si alguien puede guiarme a mí y a los futuros usuarios, ¡sería increíble!
<script> import supabase from "$lib/api"; import { page, session } from '$app/stores'; import { browser } from '$app/env'; if(browser){ $session = supabase.auth.session(); supabase.auth.onAuthStateChange((event, sesh) => { $session = sesh; }); } </script>Definitivamente no está claro cómo hacer esto. Traté de hacerlo fácil y lo puse en una tienda legible por el usuario:
export const user = readable<any>(null, (set) => { set(supabase.auth.user()); const unsubscribe = supabase.auth.onAuthStateChange((_, session) => { session ? set(session.user) : set(null); }); return () => { unsubscribe.data.unsubscribe(); } }); Ahora puede usar $user en cualquier lugar para obtener la sesión o ver si hay una sesión.
j