LaravelLaravel20 min read

Laravel Sanctum: Secure Authentication for APIs and SPAs

Learn how to secure APIs and single-page applications using Laravel Sanctum with token and session authentication.

Jonathan Miller
October 31, 2025
2.1k92

Modern applications often use JavaScript frontends or mobile apps that talk to a backend API. Laravel Sanctum provides a simple way to authenticate these clients.

  Sanctum supports two common patterns:
  - Cookie-based authentication for SPAs
  - Token-based authentication for APIs
  
  ## Installing Sanctum
  
  ```bash
  composer require laravel/sanctum
  php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
  php artisan migrate
  ```
  
  Add middleware in `app/Http/Kernel.php`.
  
  ## Token authentication example
  
  Create a token after login:
  
  ```php
  $token = $user->createToken('mobile-app')->plainTextToken;
  return response()->json(['token' => $token]);
  ```
  
  Use it in requests:
  
  ```http
  Authorization: Bearer your_token_here
  ```
  
  ## Request flow
  
  ```mermaid
  flowchart LR
    A[Client Login] --> B[Laravel Auth]
    B --> C[Issue Token]
    C --> D[Client Stores Token]
    D --> E[API Requests]
    E --> F[Sanctum Middleware]
  ```
  
  Sanctum gives you secure auth without the complexity of OAuth.
  
  In the next tutorial, we will intercept requests using middleware.
#Laravel#API#Auth#Advanced