Некоторый контекст: по умолчанию Laravel поставляется с глобальными, «веб-» и «api» группами промежуточного программного обеспечения. После аутентификации пользователя посредством обычного сеанса на основе файлов cookie единственными промежуточными программами \Illuminate\Cookie\Middleware\EncryptCookies::class и \Illuminate\Session\Middleware\StartSession::class являются те, которые необходимы для загрузки этого пользователя для доступа через auth()->user() или $request->user(). Эти промежуточные программы включены в группу «Интернет» по умолчанию.
Промежуточные программы выполняются последовательно в том порядке, в котором они перечислены. Глобальное промежуточное ПО всегда выполняется первым. Однако продвижение вышеупомянутого «веб» промежуточного программного обеспечения в глобальное по-прежнему работает, но приводит к тому, что $request->user() становится нулевым при ссылке из глобального промежуточного программного обеспечения, вызванного сразу после этого. Другими словами:
Код: Выделить всё
// app/Http/Middleware/Test.php
Подробнее здесь: [url]https://stackoverflow.com/questions/78530919/why-cant-request-user-be-accessed-in-global-laravel-middleware-even-when[/url]