Подтвердить что ты не робот

Как изменить URL-адрес перенаправления при выходе из системы?

Я работаю с системой аутентификации Laravel 5, предоставленной по умолчанию. После выхода из системы пользователь перенаправляется на корневую страницу, но я хотел бы изменить это. Мне удалось сделать это для процесса "входа в систему" ​​и "регистрации", указав "$ redirectTo" в "AuthController.php". Но для "выхода из системы" я определил "$ redirectAfterLogout" в одном и том же месте, но, похоже, он не учитывается.

Может ли кто-нибудь объяснить мне, где проблема и как ее исправить? Большое спасибо.

4b9b3361

Ответ 1

Для Laravel 5,

Откройте AuthController класс: приложение /Http/Controllers/Auth/AuthController.php

Добавьте свойство ниже в класс

protected $redirectAfterLogout = 'auth/login';

вы можете изменить auth/login на любой URL-адрес.

Ответ 2

Переадресация после выхода из системы жестко закодирована в признаке AuthenticatesAndRegistersUsers. Вы можете переопределить его в AuthController, добавив следующее:

public function getLogout()
{
    $this->auth->logout();

    return redirect('logout');
}

Ответ 3

Если вы не указали атрибут $redirectAfterLogout, он будет использовать значение по умолчанию '/'.

Эта логика может быть найдена в этом классе: \vendor\laravel\framework\src\Illuminate\Foundation\Auth\AuthenticatesUsers.php

public function logout()
{
    Auth::guard($this->getGuard())->logout();

    return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/');
}

Сказав это, просто добавьте этот атрибут в свой AuthController:

protected $redirectAfterLogout = '/afterRedirectURL';

Ответ 4

В App\Controllers\Auth\AuthController добавьте следующие две переменные.

protected $redirectTo = '/private_dashboard';
protected $redirectAfterLogout = '/public_homepage';

Вы получаете идею.

Ответ 5

У меня такая же проблема в Laravel 5.0. Переопределить метод делает трюк.

1) Перейдите в приложение /Http/Controllers/Auth/AuthController.php 2) Добавьте новый метод:

// Override Logout method (define custom url)
public function getLogout()
{
    $this->auth->logout();
    return redirect('auth/login');  // Your Custom URL
}

Ответ 6

Добавьте это на свой маршрут

Маршрут:: get ('logout', function() {   Auth:: выход из системы();   return redirect ('/');/Добавлена ​​эта строка. Автомат не работает сам по себе/ });

Ответ 7

Для Laravel 5.5 переопределить метод выхода из системы LoginController. В моем случае я переадресовываюсь на домашний маршрут после входа в систему.

/**
 * Log the user out of the application.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function logout(Request $request)
{
    $this->guard()->logout();
    $request->session()->invalidate();

    return redirect()->route('home');
}

Ответ 8

it'only laravel versi 5.4, если вы хотите, чтобы пользовательский переадресация вывода URL, открыть /your-project-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php и отредактируйте переадресацию на основе необходимых вам

  public function logout(Request $request)
    {
        $this->guard()->logout();

        $request->session()->flush();

        $request->session()->regenerate();

        return redirect('/login');
    }