Laravel 5.2 Как изменить перенаправления RedirectIfAuthenticated в зависимости от контроллера?

Мне интересно, можно ли по-разному перенаправить аутентификацию для каждого из моих контроллеров? В настоящее время все перенаправляет на / домой. Это предназначено для моего HomeController. Но для ClientController я хочу, чтобы он перенаправлял на /client (если аутентифицирован), а не на /home. Нужно ли создавать новое промежуточное программное обеспечение для каждого из моих контроллеров, или есть способ сделать это путем повторного использования аутентификации?

RedirectIfAuthenticated.php

if (Auth::guard($guard)->check()) {
    return redirect('/home'); //anyway to change this to /client if coming from ClientController?
}

У меня есть это на моем ClientController.php

public function __construct()
{
    $this->middleware('auth');
}

Заранее спасибо! Довольно новый для Laravel и Middleware.

2 ответа

Не берите в голову, я был в состоянии заставить вещи работать с надлежащей маршрутизацией. Добавлен ClientController под веб-посредником, который отвечает за всю аутентификацию.

Route::group(['middleware' => ['web']], function () {
    Route::resource('client', 'ClientController');
}

А в ClientController.php добавьте для использования промежуточного программного обеспечения аутентификации.

public function __construct()
{
    $this->middleware('auth');
}

public function index()
{
    return view('client');
}

Просто используйте это в User модель:

protected $redirectTo = '/client';

Вы также можете добиться этого, изменив файл ядра Laravel. Если вы используете Laravel 5.2, перейдите на project_folder\vendor\laravel\framework\src\Illuminate\Foundation\Auth\RedirectsUsers.php

Вы можете найти следующий код:

public function redirectPath()
{
    if (property_exists($this, 'redirectPath')) {
        return $this->redirectPath;
    }

    return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home'; //Change the route in this line
}

Теперь измени /home в /client, Тем не менее, я рекомендую не менять основные файлы. Вы можете использовать первый.

Другие вопросы по тегам