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.