Laravel Sanctum — это мощный пакет, который обеспечивает простой и безопасный способ аутентификации пользователей и защиты API-интерфейсов ваших приложений Laravel. В этой статье мы углубимся в различные методы и примеры кода для эффективного использования Laravel Sanctum.
- Установка и настройка:
Чтобы начать использовать Laravel Sanctum, вам необходимо установить его через Composer. Запустите следующую команду в каталоге приложения Laravel:
composer require laravel/sanctum
Затем опубликуйте файл конфигурации Sanctum, используя следующую команду Artisan:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
- Настройка Sanctum:
После установки вам необходимо настроить Sanctum для работы с вашим приложением. Откройте файлconfig/sanctum.phpи настройте нужные параметры. Например, вы можете указать домены с отслеживанием состояния, которым должен быть разрешен доступ к сеансу аутентификации:
'stateful' => [
'your-domain.com',
],
- Создание токенов API:
Laravel Sanctum использует токены API для аутентификации. Вы можете создать токен API для пользователя, используя методcreateToken. Вот пример создания токена API для пользователя:
use App\Models\User;
$user = User::find(1);
$token = $user->createToken('token-name')->plainTextToken;
return $token;
- Защита маршрутов.
Чтобы защитить свои маршруты с помощью 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
});
- Аутентификация запросов.
Чтобы аутентифицировать запросы с помощью Laravel Sanctum, вы можете отправить сгенерированный токен API в виде заголовкаAuthorizationсо схемойBearer. Вот пример использования cURL:
curl -H "Authorization: Bearer {your-api-token}" https://your-domain.com/api/user
- Обработка защиты CSRF:
Laravel Sanctum автоматически управляет защитой CSRF для вашего SPA (одностраничного приложения) или других внешних клиентов. Вы можете включить значение файла cookie CSRF в свои запросы, используя опциюwithCredentials. Вот пример использования Axios:
axios.get('/api/user', { withCredentials: true });
Laravel Sanctum — отличный пакет, который упрощает процесс аутентификации пользователей и обеспечивает безопасность API-интерфейсов вашего приложения Laravel. Следуя методам, обсуждаемым в этой статье, вы можете обеспечить надежную и безопасную систему аутентификации для своих приложений Laravel.
Не забудьте обратиться к официальной документации Laravel Sanctum для получения более подробной информации и расширенных сценариев использования.