Пользовательская аутентификация Laravel: маршрут [логин] не определен - PullRequest
0 голосов
/ 10 июля 2019

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

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

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

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

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

fidelite' => [
            'driver' => 'eloquent',
            'model' => App\Fidelite::class,
        ],

И охранник

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

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

Route::prefix('fidelite')
    ->as('fidelite.')
    ->group(function() {
        Route::get('/home', 'Home\FideliteHomeController@index')->name('home');
Route::namespace('Auth\Login')
      ->group(function() {
    Route::get('login', 'FideliteController@showLoginForm')->name('login');
    Route::post('login', 'FideliteController@login')->name('login');
    Route::post('logout', 'FideliteController@logout')->name('logout');
    Route::get('register', 'FideliteController@showRegisterForm')->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 / home, когда пользователь вошел в систему

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

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

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

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Вы дублируете маршрут login name.измените имя входа на любое конкретное имя, которое правильно определяет поведение вашего маршрута.

0 голосов
/ 10 июля 2019

Нашли это! Спасибо Альфе, которая помогает мне найти проблему!

Проблема заключалась в том, что промежуточное программное обеспечение, которое я использовал (Authenticate.php), перенаправляло на маршрут ('login') вместо необходимого мне пользовательского маршрута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...