Laravel Sanctum è un pacchetto di Laravel che rende facile aggiungere l’autenticazione basata su token alle tue API, oltre a gestire l’autenticazione di Single Page Applications (SPA) e app mobile.

Funzionalità Principali di Laravel Sanctum

1. Token API:
Puoi generare token per gli utenti, che poi usano per fare richieste API al server. Ogni utente può avere diversi token per vari dispositivi o scopi.

2. Autenticazione per SPAs e Mobile:
Sanctum funziona anche per autenticare richieste da SPAs e app mobile utilizzando cookie di sessione. È sicuro e semplice.

3. Revoca dei Token:
Gli utenti possono revocare i token quando vogliono, quindi hai un controllo extra sulla sicurezza.

4. Permessi e Ambiti:
Puoi assegnare permessi specifici ai token API, quindi ogni token può fare solo certe cose nell’app.

Come Funziona Laravel Sanctum

Configurazione:
Installa Sanctum con Composer e configuralo nel file di configurazione di Laravel. Dovrai anche migrare il database per creare le tabelle per i token.

Generazione dei Token:
Gli utenti possono generare token tramite endpoint API. Ogni token è unico e serve per autenticare le richieste future.

Protezione delle Route:
Puoi proteggere le route API con il middleware di Sanctum, così solo le richieste con token validi possono accedere.

Esempio di Utilizzo

use Illuminate\Http\Request;
use App\Models\User;
 
// Generare un nuovo token per l'utente autenticato
Route::post('/sanctum/token', function (Request $request) {
    $user = User::where('email', $request->email)->first();
 
    if (! $user || ! Hash::check($request->password, $user->password)) {
        return response()->json(['message' => 'Invalid credentials'], 401);
    }
 
    $token = $user->createToken('token-name')->plainTextToken;
    return response()->json(['token' => $token]);
});
 
// Utilizzare il token per accedere a route protette
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

 

Quando Usare Laravel Sanctum

APIs Facili: Se stai costruendo un’API e hai bisogno di un modo semplice per autenticare gli utenti.
SPAs: Quando hai un’app SPA e vuoi una soluzione di autenticazione senza troppi fronzoli.
App Mobile: Perfetto per autenticare le richieste delle tue app mobile senza complicazioni.

Perché Usarlo

Semplicità: È super facile da implementare e usare, perfetto se non vuoi complicarti la vita con sistemi di autenticazione troppo complessi.
Sicurezza: Ti dà un controllo granulare su chi può fare cosa nella tua API.
Flessibilità: Supporta diversi scenari di autenticazione, quindi è adatto a molte situazioni.

Laravel Sanctum è ideale per chi vuole un sistema di autenticazione robusto e flessibile senza dover perdere troppo tempo a configurare e mantenere tutto. Se sei uno sviluppatore con una buona esperienza e cerchi qualcosa di efficiente e facile da usare, Sanctum fa al caso tuo!