LARAVEL PASSPORT
Laravel Passport es el sistema de autenticación completo basado en OAuth2 oficial de Laravel. Proporciona un servidor OAuth2 dentro de la aplicación Laravel en cuestión de minutos, permitiendo implementar flujos profesionales como los que usan Google, GitHub, Spotify o cualquier API que necesite autorización segura entre clientes de terceros. Es decir: Laravel Passport es mucho más que "tokens simples". Es el estándar industrial cuando tu API debe ser consumida por aplicaciones externas (mobile de terceros, partners, SaaS integraciones, etc.).¿Cuándo usar Laravel Passport?
Se usa Laravel Passport si el proyecto necesita alguno de estos:
- Soporte completo OAuth2 (Authorization Code, PKCE, Client Credentials, Implicit, etc.).
- Terceros deben autenticarse en tu API (apps móviles de otras empresas, integraciones Zapier/Make, etc.).
- Refresh tokens automáticos + expiración controlada.
- Scopes avanzados y granular (permisos por recurso).
- Clientes (apps) registrados con client_id + client_secret.
- Flujo de "Iniciar sesión con TuApp" para otras plataformas.
Instalación de Laravel Passport
- Para instalar Laravel Passport hay que ejecutar los siguientes comandos desde consola:
# Instalación recomendada
php artisan install:api
# Luego específicamente para Passport
php artisan passport:install
Los comandos anteriores crean lo siguiente:
- Claves de encriptación.
- Cliente personal access (para testing).
- Tablas necesarias.
- Luego en el modelo User:
use Laravel\Passport\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens; // ← diferente al de Sanctum
// ...
}
- Luego en el fichero: config/auth.php:
'guards' => [
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
- Para instalar Laravel Passport hay que ejecutar los siguientes comandos desde consola:
Los comandos anteriores crean lo siguiente:# Instalación recomendada php artisan install:api # Luego específicamente para Passport php artisan passport:install- Claves de encriptación.
- Cliente personal access (para testing).
- Tablas necesarias.
- Luego en el modelo User:
use Laravel\Passport\HasApiTokens; class User extends Authenticatable { use HasApiTokens; // ← diferente al de Sanctum // ... } - Luego en el fichero: config/auth.php:
'guards' => [ 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],