Laravel Sanctum
Sanctum ofrece un sistema de autenticacion liviano para SPAs (Single Page Applications), aplicaciones moviles y APIs basadas en tokens. Es la solucion recomendada para la mayoria de aplicaciones Laravel.
Autenticacion con tokens API
// Generar un token
$token = $user->createToken('mobile-app', ['posts:read', 'posts:write']);
return ['token' => $token->plainTextToken];
// Revocar tokens
$user->currentAccessToken()->delete(); // Token actual
$user->tokens()->delete(); // Todos los tokens
Proteger rutas
// routes/api.php
Route::middleware('auth:sanctum')->group(function () {
Route::get('/user', function (Request $request) {
return $request->user();
});
Route::apiResource('posts', PostController::class);
});
Autenticacion SPA (basada en cookies)
Para SPAs que estan en el mismo dominio, Sanctum usa la autenticacion basada en sesion de Laravel. El SPA debe hacer una peticion a /sanctum/csrf-cookie antes de autenticarse.
await axios.get('/sanctum/csrf-cookie');
await axios.post('/login', credentials);
// Las siguientes peticiones estan autenticadas automaticamente
Sanctum es mas sencillo que Passport y es suficiente para la gran mayoria de casos de uso. Viene incluido por defecto en nuevas instalaciones de Laravel.