Laravel Bastion — пакет для автентифікації API, натхнений Stripe

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 09 грудня, 2025
Відкрийте для себе Laravel Bastion – пакет для аутентифікації API, натхнений Stripe, який забезпечує ізоляцію середовищ, тонке управління правами доступу та вбудовану безпеку. Якщо ви хочете дізнатися більше про його функції та переваги, читайте далі

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

Популярні

Logomark Logotype

Усе, що нам відомо про Livewire 4

Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу

Logomark Logotype

Налаштування Xdebug з Docker та PHP 8.4 всього за одну хвилину

Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці

Logomark Logotype

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку