Sanctum guard для Authorization: Bearer Token

Sanctum guard для Authorization: Bearer Token

Пример использования кастомного Laravel Guard для авторизации пользователя по ключу Bearer без сохранения состояния.

В app\Providers\AuthServiceProvider.php добавляем обработчик для быстрого определения аутентификации через замыкание с помощью метода Auth::viaRequest. Далее получаем ключ вызвав метод $request->bearerToken(). Находим нужный ключ в таблице ключей доступа и переходим к поиску пользователя. На выход отдаем пользователя или null. Данное решение не претендует на звание правильного, но имеет место быть.

namespace App\Providers;

use App\Models\User;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Laravel\Sanctum\PersonalAccessToken;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The model to policy mappings for the application.
     *
     * @var array<class-string, class-string>
     */
    protected $policies = [
        //
    ];

    /**
     * Register any authentication / authorization services.
     */
    public function boot(): void
    {
        Auth::viaRequest('bearer_token', function (Request $request) {
            $bearer = $request->bearerToken();

            if (!$bearer) {
                return null;
            }

            $token = PersonalAccessToken::findToken($bearer);

            if ($token) {
                return User::find($token->tokenable_id);
            }

            return null;
        });
    }
}

Подробнее можно ознакомиться здесь.

Похожие статьи

Отключить проверку внешних ключей MySQL

MySQL при этом выдает ошибку на связи по внешним ключам, временно отключаем эту проверку.

Генератор QR Code на Laravel

Это оболочка для генератора QR-кодов для PHP, автономной библиотеки для создания QR-кодов в форматах PNG и SVG.

Стандартные ответы API с использованием интерфейса Responsable

Представьте себе, что вы работаете с приложением, в котором каждая конечная точка возвращает данные об успешных и ошибочных вызовах по-разному.

Copyright © 2026 PHP Blog - шпаргалки программиста