Contáctanos
Webflow Premium Partner Ehab Fayez
Volver a Agent Skills
Seguridad y Calidad

Supabase Auth

Configura Supabase Auth para autenticación por correo, social y teléfono con integración Row Level Security.

Claude Code Cursor Copilot Windsurf Gemini CLI

Descripción General

Supabase Auth es un sistema de autenticación de código abierto construido sobre GoTrue, que proporciona autenticación por correo/contraseña, enlaces mágicos, OAuth social y autenticación por teléfono/SMS. Se integra profundamente con la base de datos PostgreSQL de Supabase a través de políticas de Row Level Security (RLS), habilitando control de acceso a nivel de base de datos vinculado directamente a usuarios autenticados.

El sistema de autenticación soporta más de 20 proveedores sociales incluyendo Google, Apple, GitHub y Azure. Proporciona helpers de autenticación del lado del servidor para Next.js, SvelteKit y Remix que manejan la gestión de sesiones basada en cookies. El flujo PKCE se usa por defecto para mayor seguridad en escenarios de renderizado del lado del servidor.

Supabase Auth incluye plantillas de correo integradas, configuración de URLs de redirección y personalización de JWT. La integración con RLS significa que puedes escribir políticas PostgreSQL como auth.uid() = user_id para restringir el acceso a datos a nivel de base de datos, eliminando la necesidad de lógica de autorización en el código de tu aplicación.

¿Para Quién Es?

  • Agregar inicio de sesión por correo/contraseña y social a una app web
  • Implementar políticas Row Level Security basadas en autenticación
  • Configurar autenticación sin contraseña por enlace mágico
  • Manejar autenticación del lado del servidor en Next.js con Supabase SSR

Instalación

Configurar Claude Code
npm install @supabase/supabase-js @supabase/ssr

Configuración

// lib/supabase/server.ts
import { createServerClient } from "@supabase/ssr"
import { cookies } from "next/headers"

export function createClient() {
  const cookieStore = cookies()
  return createServerClient(
    process.env.NEXT_PUBLIC_SUPABASE_URL!,
    process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
    { cookies: { getAll: () => cookieStore.getAll() } }
  )
}