Base de datos e inicio de sesión
Lección 15 de 26 del curso «Vibe coding». Gratis, con animaciones y un test.
Una tabla, pero más lista
Una base de datos es un almacén ordenado para los datos de tu app. Funciona como una hoja de cálculo. Una fila es un registro, por ejemplo un usuario. Una columna es un campo, una propiedad de ese registro. En el esquema las columnas son id (número único de la fila), email y streak (días seguidos). Ejemplo de esta lección: haces un tracker de estudio para tu clase y cada compañero tiene su fila.
Por qué no en el navegador
La IA suele empezar guardando datos en localStorage: un pequeño almacén dentro del navegador de un solo dispositivo. Para un borrador está bien. Pero abres el tracker en el celular y la racha de la laptop no aparece. Tu amigo tampoco ve tu racha. Borras el navegador y todo desaparece. Por eso los datos compartidos viven en la base, a la derecha del esquema. El frontend pide, el servidor revisa y guarda.
Un backend listo
No tienes que crear servidor y base desde cero. Hay backends listos: la parte de servidor ya armada para ti. Supabase: base de datos Postgres (una base de código abierto muy popular), inicio de sesión y almacenamiento de archivos. Firebase: un conjunto parecido de Google. Cloudflare D1: una base simple para proyectos en Cloudflare. Muchos tienen plan gratis; revisa los límites en el sitio del servicio.
Inicio de sesión: no inventes el tuyo
Auth (autenticación) es el registro y el inicio de sesión: la forma de saber quién está del otro lado. La trampa: pedirle a la IA «haz un login» y recibir una tabla casera de contraseñas. Guardar contraseñas de forma segura es difícil y una filtración afecta a todos. Usa el login del proveedor: Supabase o Firebase guardan contraseñas de forma segura y ofrecen acceso por enlace al correo y con Google. En el esquema el formulario está unido a la tabla: cada fila pertenece a una cuenta.
RLS: cada uno ve lo suyo
Las reglas de acceso deciden quién puede leer y cambiar qué filas. En Supabase eso es RLS (Row Level Security, seguridad a nivel de fila). La clave pública de Supabase va en el frontend, y así está pensado. Pero sin RLS cualquiera con esa clave descarga toda la tabla: los correos de todos tus compañeros. Con la regla «cada uno ve solo sus filas», como en el candado del esquema, los datos ajenos quedan cerrados. La clave secreta, que se salta las reglas, vive solo en el servidor.
Ponte a prueba
- ¿Por qué guardar los datos del tracker en una base y no en localStorage?
Respuesta correcta: La base es común a todos los dispositivos y usuarios. localStorage vive en un navegador de un dispositivo. La base en el servidor se ve desde cualquier dispositivo y para quien tenga permiso. - ¿Cuál es la mejor forma de añadir inicio de sesión a tu app?
Respuesta correcta: Usar el login listo de un proveedor, como Supabase. Guardar contraseñas de forma segura es difícil. Los proveedores lo hacen por ti y ofrecen acceso por correo y con Google. - La clave pública de Supabase está en el frontend y RLS está apagado. ¿Qué pasa?
Respuesta correcta: Cualquiera puede descargar toda la tabla. La clave pública la ve todo el mundo, es normal. Las reglas RLS son las que protegen los datos. Sin ellas la tabla está abierta.