Laravel Bastion — це пакет для аутентифікації API, натхненний Stripe, розроблений Стівом МакДугаллом. Він пропонує ізоляцію середовища, гранульовані області доступу, вбудовану безпеку та багато іншого.
Після встановлення пакету, додайте HasBastionTokens трейт до вашої моделі User:
use JustSteveKing\Bastion\Concerns\HasBastionTokens;
class User extends Authenticatable
{
use HasBastionTokens;
// ...
}
Для генерації токена скористайтеся:
use JustSteveKing\Bastion\Enums\TokenEnvironment;
use JustSteveKing\Bastion\Enums\TokenType;
$result = $user->createBastionToken(
name: 'LN API Key',
scopes: ['posts:read', 'posts:write'],
environment: TokenEnvironment::Test,
type: TokenType::Restricted,
);
$token = $result['plainTextToken'];
// Приклад: app_test_rk_a8Kx7mN2pQ4vW9yB1cD3eF5gH6jK8lM
echo "Token: " . $token;
Для захисту ваших маршрутів Bastion надає middleware AuthenticateToken:
use JustSteveKing\Bastion\Http\Middleware\AuthenticateToken;
Route::middleware(AuthenticateToken::class)->group(function () {
Route::get('/api/posts', [PostController::class, 'index']);
});
При надсиланні запитів до захищених кінцевих точок передавайте токен у заголовку Authorization за схемою Bearer:
use GuzzleHttp\Client;
$client = new Client(['base_uri' => 'https://example.com/api']);
$token = 'YOUR_BEARER_TOKEN';
$response = $client->request('GET', '/posts', [
'headers' => [
'Authorization' => 'Bearer ' . $token,
'Accept' => 'application/json',
],
]);
Якщо вам потрібно також оновити токени, Bastion має цю можливість. Використовуйте метод rotate():
$result = $token->rotate();
Є навіть можливість використовувати CLI:
php artisan bastion:rotate {token-id}
Говорячи про CLI, Bastion дозволяє управляти токенами за допомогою різних команд Artisan:
# Генерація токенів
php artisan bastion:generate {user-id} "LN App Token" \
--environment=test \
--type=restricted \
--scopes=posts:read --scopes=posts:write
# Відкликання токенів
php artisan bastion:revoke {token-id} --reason="Token no longer used"
# Очищення прострочених токенів
php artisan bastion:prune-tokens --expired
# та інше...
Стів підготував зручний пакет з гарним набором функцій. Щоб дізнатися більше про Bastion, його можливості і переглянути вихідний код, відвідайте репозиторій на GitHub
Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу
Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці
Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку