GlosarioAutenticación

¿Qué es Sanctum?

Laravel Sanctum es un paquete de autenticacion ligero que proporciona tokens API personales y autenticacion basada en cookies para SPAs, aplicaciones moviles y APIs simples basadas en tokens.

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.