Qué es Laravel Socialite
Laravel Socialite es el paquete oficial para implementar de forma sencilla el login social con OAuth 2.0. Soporta los principales proveedores (GitHub, Google, Facebook, X (Twitter), LinkedIn…) y reduce a unas pocas líneas la implementación de un flujo OAuth complejo. Proveedores soportados de fábrica:Flujo del login social
Instalación
Añade el paquete con Composer.Al actualizar Socialite a una versión mayor, consulta siempre la guía de actualización.
Configuración
config/services.php
Añade el client ID, el secret y la URL de callback de cada proveedor en config/services.php.
Si
redirect es una ruta relativa, se resolverá automáticamente a una URL completa..env
Gestiona las credenciales mediante variables de entorno. Ejemplo con GitHub:
Flujo de autenticación
Rutas
Se necesitan dos rutas: una para redirigir y otra para el callback.Guardar el usuario e iniciar sesión
En el callback, recupera la información del usuario, guárdala y autentica.Información del usuario
El objeto devuelto poruser() expone la información con estas propiedades y métodos.
Obtener el usuario a partir de un access token
Si ya tienes el token, obtén el usuario conuserFromToken().
Modo stateless
Para APIs sin cookies de sesión, desactiva la verificación de estado constateless().
Integración con la base de datos
Migración
Añade columnas de login social a la tablausers.
Soportar múltiples proveedores con una columna provider
Para gestionar varios proveedores en la misma tabla, se suele usar el patrón provider + provider_id.
Vincular con usuarios existentes
Si quieres asociar la cuenta social con un usuario ya registrado con el mismo email, búscalo por correo y actualiza los datos.Scopes y opciones
Añadir scopes
Conscopes() añades scopes adicionales.
setScopes() reemplazas por completo los scopes existentes.
Parámetros adicionales
Conwith() añades parámetros a la petición de redirección.
Tokens de bot de Slack
Para generar tokens de bot de Slack, usaasBotUser().
Pruebas
Socialite proporciona utilidades de mock para probar el flujo OAuth sin peticiones reales al proveedor.Test de la redirección
Test del callback
Pásale afake() un usuario para mockear la respuesta del proveedor. Crea el usuario falso con User::fake().
fake().
Laravel\Socialite\One\User en el fake.
Cómo crear un proveedor personalizado
Si necesitas un proveedor que no está entre los integrados, la forma oficial es registrar un driver personalizado conSocialite::extend(). SocialiteManager hereda de Illuminate\Support\Manager, así que se extiende con el mismo mecanismo que otros drivers de Laravel.
Para más detalle sobre el patrón Manager y
extend(), consulta la explicación de la clase Manager.1. Crear la clase del proveedor
ExtiendeLaravel\Socialite\Two\AbstractProvider e implementa los cuatro métodos abstractos.
2. Registrarlo en un service provider
En elboot() de AppServiceProvider, registra el driver con Socialite::extend().
3. Añadir la configuración
4. Usarlo como cualquier otro proveedor
Ya se usa con la misma API que los proveedores integrados.Paquetes relacionados
Extensiones de Socialite publicadas por los mantenedores de este sitio. Todas siguen la forma oficial usandoSocialite::extend(), así que basta con añadir la configuración a config/services.php.
LINE
LINE SDK para Laravel. Login OAuth con Socialite y también integración con Messaging API.
Bluesky
Integración con AT Protocol (Bluesky). Soporta autenticación OAuth y publicación de posts.
Discord
Login con Discord OAuth2.
Threads
Integración con Meta Threads. Soporta autenticación OAuth y la API de publicación.
Amazon
Login con Amazon vía OAuth.
Mastodon
Login OAuth con instancias de Mastodon.
WordPress
Login OAuth con WordPress.com y WordPress autoalojado.