Мне понадобится немного больше информации для отладки, но мое первое предположение - отсутствие промежуточного программного обеспечения AuthenticateSession
или Authenticate
.
Laravel определяет группу связующего ПО по умолчанию web
для ваших маршрутов внутри routes/web.php
, и эта группа использует промежуточное ПО AuthenticateSession
. Вот как выглядит новая установка:
Route::group([
'middleware' => 'web', <<< this is the magic part
'namespace' => $this->namespace,
], function ($router) {
require base_path('routes/web.php');
});
Здесь мы видим, что используется группа промежуточного программного обеспечения web
.
В вашем пользовательском модуле / поставщике услуг это не так. Ваше определение Route::get()
добавлено к Router
, но не внутри этой группы. Поэтому все необходимые внутренние компоненты для аутентификации пользователя не выполняются.
В этом сценарии я бы попытался использовать ->middleware('auth')
или ->middleware('web')
, который будет использовать промежуточное программное обеспечение группы основных проектов.
Route::get('dashboard/visitors', '\Rainieren\Visitors\Http\Controllers\VisitorController@index')
->name('visitors')
->middleware('web');
Вот другая идея:
Если вы говорите, что вы всегда аутентифицированы. Затем вы можете попытаться переместить все промежуточные программы web
в глобальные промежуточные программы внутри Kernel
(protected $middleware = []
).
Я не проверял это, но могу представить, что это тоже может сработать.