Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

259
Vistas
El inicio de sesión de Supabase obtiene la sesión y el perfil del usuario al mismo tiempo

¿Hay alguna forma de obtener la sesión y el perfil del usuario al mismo tiempo? La forma en que lo hice sería obtener la sesión de usuario primero después de iniciar sesión y luego buscar el perfil de usuario usando la identificación.

 const [authsession, setSession] = useState(null); const [loading, setLoading] = useState(false); const [error, setError] = useState(false); useEffect(() => { const userSession = supabase.auth.session(); setSession(userSession); if (userSession) { getProfile(userSession.user.id); } else { setSession((s) => ({ ...s, profile: null })); } supabase.auth.onAuthStateChange((_event, session) => { setSession(session); if (session) { getProfile(session.user.id); } else { setSession((s) => ({ ...s, profile: null })); } }); }, []); const getProfile = async (id) => { setLoading(true); setError(false); try { const { data } = await supabase .from("profiles") .select("*") .eq("id", id) .single(); setSession((s) => ({ ...s, profile: data })); } catch (error) { setError(true); } finally { setLoading(false); } };
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El objeto session.user contiene una propiedad llamada user_metadata : esta propiedad contiene los datos que están presentes en la columna raw_user_meta_data de la tabla de auth.users .

Por lo tanto, puede configurar un activador de base de datos en su tabla de perfil de usuario personalizada que copia los datos de esa tabla en la columna raw_user_meta_data de la tabla de auth.users en formato JSON cada vez que cambien los datos en la tabla de perfil de usuario (es decir, necesitará el disparador para ser ejecutado en INSERTAR/ACTUALIZAR y probablemente DELETE declaraciones). De esta forma, los datos del perfil se entregarán automáticamente al cliente con los eventos de inicio de sesión o actualización del token.

IMPORTANTE: Este enfoque tiene inconvenientes potenciales:

  • estos datos también formarán parte del JWT enviado al usuario. Esto podría ser un problema porque el JWT NO es fácil de revocar ANTES de su fecha de caducidad y podría terminar en una situación en la que un JWT que caduca en 1 hora (y se actualizará en 1 hora) aún contiene datos de perfil que ya han sido actualizado en el servidor. Las implicaciones de esto realmente dependen de lo que ingrese en los datos de su perfil y cómo los use en el cliente y/o el backend;
  • dado que estos datos están en el JWT, los datos se volverán a enviar al cliente con cada actualización de la sesión (que es cada 1 hora de forma predeterminada). Entonces, (a) si los datos del perfil son grandes, estaría enviando esta gran cantidad de datos en cada actualización del token, incluso si NO ha cambiado y (b) si los datos cambian con frecuencia y necesita asegurarse de que el cliente esté activo hasta la fecha en (casi) tiempo real, deberá aumentar la frecuencia de actualización del token;
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda