GlosarioAutenticación

¿Qué es Passport?

Laravel Passport es una implementacion completa de servidor OAuth2 para Laravel que permite emitir tokens de acceso mediante flujos como Authorization Code, Client Credentials y Personal Access Tokens.

Laravel Passport

Passport proporciona una implementacion completa de servidor OAuth2 para tu aplicacion Laravel. Es ideal cuando necesitas autenticacion OAuth2 completa para APIs que seran consumidas por terceros.

Instalacion y configuracion

composer require laravel/passport
php artisan passport:install

Definir scopes

// En AuthServiceProvider
Passport::tokensCan([
    'read-posts' => 'Leer posts',
    'write-posts' => 'Crear y editar posts',
    'admin' => 'Acceso de administrador',
]);

Proteger rutas

Route::middleware('auth:api')->group(function () {
    Route::get('/user', function () {
        return auth()->user();
    });
});

// Con scopes
Route::middleware(['auth:api', 'scope:write-posts'])->group(function () {
    Route::post('/posts', [PostController::class, 'store']);
});

Flujos OAuth2 soportados

  • Authorization Code: Para aplicaciones de terceros (el flujo mas seguro).
  • Client Credentials: Para comunicacion maquina-a-maquina.
  • Personal Access Tokens: Para que los usuarios generen sus propios tokens.
  • Password Grant: Para aplicaciones propias de confianza (deprecated).

Si no necesitas OAuth2 completo y solo necesitas tokens simples para tu SPA o app movil, Laravel Sanctum es la opcion mas sencilla y recomendada.