Пользовательская аутентификация Laravel: маршрут [логин] не определен

Я создал пользовательскую аутентификацию для своего приложения Laravel, следуя этому руководству: https://medium.com/@nasrulhazim/laravel-using-different-table-and-guard-for-login-bc426d067901

Я адаптировал его под свои нужды, но особо менять не пришлось.

В конце концов, когда я пытаюсь перейти по маршруту / home, но он говорит: «Маршрут [логин] не определен».

Я предполагаю, что поведение аутентификации по умолчанию вызывает маршрут входа в систему вместо созданного мной / fidelite / login.

Вот мой провайдер:

fidelite’ => [ ‘driver’ => ‘eloquent’, ‘model’ => AppFidelite::class, ],

И охранник

‘fidelite’ => [ ‘redirectTo’ => ‘fidelite.home’, ‘driver’ => ‘session’, ‘provider’ => ‘fidelite’, ],

Маршруты, определенные в файле web.php

Route::prefix(‘fidelite’) ->as(‘fidelite.’) ->group(function() { Route::get(‘/home’, ‘Home[email protected]’)->name(‘home’); Route::namespace(‘AuthLogin’) ->group(function() { Route::get(‘login’, ‘[email protected]’)->name(‘login’); Route::post(‘login’, ‘[email protected]’)->name(‘login’); Route::post(‘logout’, ‘[email protected]’)->name(‘logout’); Route::get(‘register’, ‘[email protected]’)->name(‘register’); }); });

По сути, есть два контроллера; первый, FideliteController добавляет промежуточное ПО и показывает необходимые формы для входа / регистрации

class FideliteController extends DefaultLoginController { protected $redirectTo = ‘/fidelite/home’; public function __construct() { $this->middleware(‘guest:fidelite’)->except(‘logout’); } public function showLoginForm() { return view(‘auth.login.fidelite’); } public function showRegisterForm() { return view(‘auth.compte’); } public function username() { return ’email’; } protected function guard() { return Auth::guard(‘fidelite’); } }

А другой возвращает домашнюю страницу / fidelite /, когда пользователь вошел в систему.

class FideliteHomeController extends Controller { public function __construct() { $this->middleware(‘auth:fidelite’); } public function index() { return view(‘home.fidelite’); } }

Что-то мне не хватает, но что?

Большое спасибо за вашу помощь и время …

На самом деле ваш login маршрут имеет имя fidelite.login из-за группы as и имеет повторяющиеся имена fidelite.login.   —  person Laurent Kreps    schedule 10.07.2019

это верно, и если я перейду в / fidelite / login, он работает. Но когда я вызываю маршрут / home / fidelite, у меня возникает исключение InvalidArgumentException — маршрут [логин] не определен. Я думаю, это как-то вызывает маршрут / login   —  person Laurent Kreps    schedule 10.07.2019

Вероятно, это связано с тем, что на вашей домашней странице есть шаблон, в котором вы использовали route(‘login’) для создания ссылки для входа.   —  person Laurent Kreps    schedule 10.07.2019

Также проверьте промежуточное ПО, на которое ссылается / используется в FideliteHomeController ::constructor $this->middleware(‘auth:fidelite’);, оно могло использовать любое перенаправление входа в систему.   —  person Laurent Kreps    schedule 10.07.2019

Я не думаю, что это проблема, с которой я столкнулся, потому что, когда я редактирую свой FideliteHomeController и заменяю return view(‘home.fidelite’); в индексной функции на return ‘hello’;, возникает та же ошибка   —  person Laurent Kreps    schedule 10.07.2019

Затем это файл просмотра, в котором создается маршрут login, очистите cache для просмотров.   —  person Laurent Kreps    schedule 10.07.2019

Файл входа в систему содержит только {{ route(‘fidelite.login’) }}, но, возможно, я что-то пропустил в промежуточном программном обеспечении; На самом деле я не создавал промежуточное ПО (я следовал упомянутому руководству), я думаю, это промежуточное ПО loginController use AppHttpControllersAuthLoginController as DefaultLoginController; Я расширяю   —  person Laurent Kreps    schedule 10.07.2019

Источник: ledsshop.ru

Стиль жизни - Здоровье!