@WotanWeb

Как использовать Auth::user() в middleware Laravel при использовании sanctum?

Подскажите, использую sanctum для авторизации, решил добавить свою middleware, которая должна проверять Auth::user() Однако при таком вызове:

Route::middleware('auth:sanctum')->middleware('activated')->group(function () {
    Route::get('/name', function (Request $request) {
        return response()->json(['user' => auth()->user()]);
    });
});


Auth::user() внутри activated возвращает null;

Однако, если использовать эту middleware к конкретному маршруту, а не к группе - всё работает:

Route::middleware('auth:sanctum')->group(function () {
    Route::get('/name', function (Request $request) {
        return response()->json(['user' => auth()->user()]);
    })->middleware('activated');
});


Но это неудобно, ведь маршрутов могут быть сотни. Сколько я понимаю, проблема в порядке вызова middleware.

Пробовал в Http/Kernel.php делать так:

protected $middlewarePriority = [
    \App\Http\Middleware\Authenticate::class,
    \App\Http\Middleware\CheckUserActivation::class
];


Не даёт положительного эффекта.

Как запустить activated после auth:sanctum, чтобы иметь внутри неё Auth::user()?
  • Вопрос задан
  • 297 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы