Laravel Jetstream API
Введение
Jetstream включает встроенную интеграцию с Laravel Sanctum. Laravel Sanctum предоставляет легкую систему аутентификации для SPA (single page applications — одностраничных приложений), мобильных приложений и простых API на основе токенов. Sanctum позволяет каждому пользователю вашего приложения создавать несколько токенов API для своей учетной записи. Этим токенам могут быть предоставлены возможности / разрешения, которые определяют, какие действия токенам разрешено выполнять.
По умолчанию к панели создания токенов API в Jetstream можно получить доступ, используя ссылку «API» в раскрывающемся меню профиля пользователя в правом верхнем углу. На этой странице пользователи могут создавать токены Sanctum API с различными разрешениями.
Документация Sanctum
Для получения дополнительной информации о Sanctum и о том, как отправлять запросы к API с аутентификацией Sanctum, обратитесь к официальной документации Sanctum.
Включение поддержки API
Если ваше приложение будет предлагать API третьим лицам, вы должны включить функцию API Jetstream. Для этого раскомментируйте соответствующую запись в опции конфигурации features
в файле конфигурации config/jetstream.php
:
'features' => [
Features::profilePhotos(),
Features::api(),
Features::teams(),
],
Определение разрешений
Разрешения, доступные для токенов API, определяются с помощью метода Jetstream::permissions
в JetstreamServiceProvider
вашего приложения. Разрешения - это простые строки. Как только они будут определены, они могут быть назначены токену API:
Jetstream::defaultApiTokenPermissions(['read']);
Jetstream::permissions([
'create',
'read',
'update',
'delete',
]);
Метод defaultApiTokenPermissions
может использоваться для указания, какие разрешения должны быть выбраны по умолчанию при создании нового токена API. Конечно, пользователь может снять отметку с разрешения по умолчанию перед созданием токена.
Авторизация входящих запросов
Каждый запрос, сделанный к вашему приложению Jetstream, даже к аутентифицированным маршрутам в вашем файле routes/web.php
, будет связан с объектом токена Sanctum. Вы можете определить, имеет ли связанный токен данное разрешение, используя метод tokenCan
, предоставленный трейтом Laravel\Sanctum\HasApiTokens
. Этот трейт автоматически применяется к модели вашего приложения App\Models\User
во время установки Jetstream:
$request->user()->tokenCan('read');
Запросы, инициированные пользовательским интерфейсом
Когда пользователь делает запрос к маршруту в вашем файле routes/web.php
, этот запрос обычно аутентифицируется Sanctum через web
guard на основе файлов cookie. Поскольку в этом сценарии пользователь отправляет первичный запрос через пользовательский интерфейс приложения, метод tokenCan
всегда будет возвращать значение true
.
Поначалу такое поведение может показаться странным; однако удобно всегда предполагать, что токен API доступен и может быть проверен с помощью метода tokenCan
. Это означает, что в рамках политик авторизации вашего приложения вы всегда можете вызвать этот метод, не опасаясь, что с запросом не связан токен.
Перевод:
https://jetstream.laravel.com/1.x/features/api.html
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)