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;
        });
    }
}

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

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

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

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

Замена слова или нескольких слов MySQL

На практике редко, но встречаются задачи, когда нужно заменить слово или несколько слов в статье, описании товара и т.п.

Дублирование и клонирование записей с Laravel

Вам когда-нибудь приходилось дублировать или клонировать запись базы данных? Laravel предоставляет для этого очень удобную функцию.

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