Danyloff

Использование Laravel Sanctum для аутентификации API: руководство с примерами


  • ·

· ·
·

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

Что такое Laravel Sanctum?

Sanctum — это пакет, который предоставляет простую систему аутентификации для SPA (одностраничных приложений), мобильных приложений и простых API на основе токенов. Он разработан для обеспечения безопасности конечных точек вашего API, не требуя полного сервера OAuth2.

Sanctum позволяет каждому пользователю вашего приложения генерировать несколько токенов API для своей учетной записи. Эти токены могут быть предоставлены возможности/области, которые определяют, какие действия токены могут выполнять.

Sanctum работает путем создания токенов API, которые используются для аутентификации пользователей. Эти токены могут быть созданы и отозваны программно, и они могут использоваться для аутентификации API-запросов.

How to use Laravel Sanctum?

Чтобы использовать Sanctum в Laravel, вам нужно установить пакет, используя Composer. Вот как это сделать:

composer require laravel/sanctum

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

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

Это опубликует файл конфигурации sanctum.php и файл миграции create_personal_access_tokens_table.php.

Для создания токена API для пользователя вы можете использовать метод createToken(), предоставляемый трейтом HasApiTokens. Вот пример:

use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
}

C добавлением этого трейта к модели User вы можете создать токен для пользователя следующим образом:

$user = Auth::user();
$token = $user->createToken('token-name');

Это создаст новый токен с указанным именем и вернет объект Laravel\Sanctum\PersonalAccessToken.

Вы можете использовать этот токен для аутентификации API-запросов, включив его в заголовке Authorization ваших запросов:

Authorization: Bearer <token>

Для защиты ваших API-точек с помощью Sanctum вы можете использовать промежуточное ПО auth:sanctum. Вот пример:

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

Этот маршрут будет доступен только аутентифицированным пользователям, у которых есть действительный Sanctum API-токен.

Заключение

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

Источник


Так же интересно

D из SOLID с примерами на PHP

Принцип инверсии зависимостей (Dependency Inversion Principle) - это один из пяти принципов SOLID, который гласит, что модули верхнего уровня не должны зависеть...