Изучение Laravel Sanctum: безопасная аутентификация для ваших приложений Laravel

Laravel Sanctum — это мощный пакет, который обеспечивает простой и безопасный способ аутентификации пользователей и защиты API-интерфейсов ваших приложений Laravel. В этой статье мы углубимся в различные методы и примеры кода для эффективного использования Laravel Sanctum.

  1. Установка и настройка:
    Чтобы начать использовать Laravel Sanctum, вам необходимо установить его через Composer. Запустите следующую команду в каталоге приложения Laravel:
composer require laravel/sanctum

Затем опубликуйте файл конфигурации Sanctum, используя следующую команду Artisan:

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
  1. Настройка Sanctum:
    После установки вам необходимо настроить Sanctum для работы с вашим приложением. Откройте файл config/sanctum.phpи настройте нужные параметры. Например, вы можете указать домены с отслеживанием состояния, которым должен быть разрешен доступ к сеансу аутентификации:
'stateful' => [
    'your-domain.com',
],
  1. Создание токенов API:
    Laravel Sanctum использует токены API для аутентификации. Вы можете создать токен API для пользователя, используя метод createToken. Вот пример создания токена API для пользователя:
use App\Models\User;
$user = User::find(1);
$token = $user->createToken('token-name')->plainTextToken;
return $token;
  1. Защита маршрутов.
    Чтобы защитить свои маршруты с помощью Laravel Sanctum, вы можете использовать промежуточное программное обеспечение auth:sanctum. Примените это промежуточное программное обеспечение к нужным маршрутам или группам маршрутов в вашем файле routes/api.php:
use App\Http\Controllers\API\UserController;
Route::middleware('auth:sanctum')->group(function () {
    Route::get('/user', [UserController::class, 'getUser']);
    // Add more protected routes here
});
  1. Аутентификация запросов.
    Чтобы аутентифицировать запросы с помощью Laravel Sanctum, вы можете отправить сгенерированный токен API в виде заголовка Authorizationсо схемой Bearer. Вот пример использования cURL:
curl -H "Authorization: Bearer {your-api-token}" https://your-domain.com/api/user
  1. Обработка защиты CSRF:
    Laravel Sanctum автоматически управляет защитой CSRF для вашего SPA (одностраничного приложения) или других внешних клиентов. Вы можете включить значение файла cookie CSRF в свои запросы, используя опцию withCredentials. Вот пример использования Axios:
axios.get('/api/user', { withCredentials: true });

Laravel Sanctum — отличный пакет, который упрощает процесс аутентификации пользователей и обеспечивает безопасность API-интерфейсов вашего приложения Laravel. Следуя методам, обсуждаемым в этой статье, вы можете обеспечить надежную и безопасную систему аутентификации для своих приложений Laravel.

Не забудьте обратиться к официальной документации Laravel Sanctum для получения более подробной информации и расширенных сценариев использования.