Здесь является документация поLaravel перенаправление после входа
Когда пользователь успешно прошел проверку подлинности, они будут перенаправлены на
/home
URI. Вы можете настроить пост-аутентификации перенаправлять местоположение путем определенияredirectTo
собственности наLoginController
,RegisterController
иResetPasswordController
:
protected $redirectTo = '/';
Если путь переадресации необходим пользовательский поколение логики вы можете определить метод
redirectTo
вместо изredirectTo
собственности:
protected function redirectTo() { // }
Так я определил его
protected function redirectTo()
{
if (\Auth::user()->isAdmin()) {
return '/dashboard';
} else {
return '/home';
}
}
Но, как вы можете догадаться, это не работает. Он всегда перенаправляется на /home
.
Проходя через источники, я нашел этот
namespace Illuminate\Foundation\Auth;
trait AuthenticatesUsers
{
...
/**
* Send the response after the user was authenticated.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
protected function sendLoginResponse(Request $request)
{
$request->session()->regenerate();
$this->clearLoginAttempts($request);
return $this->authenticated($request, $this->guard()->user())
?: redirect()->intended($this->redirectPath());
}
...
}
И это реализация $this->redirectPath()
namespace Illuminate\Foundation\Auth;
trait RedirectsUsers
{
/**
* Get the post register/login redirect path.
*
* @return string
*/
public function redirectPath()
{
return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}
}
Я не могу найти, где он проверяет redirectTo
метода.
Я использую Laravel 5.3.28, BTW.
Любые предложения?
РЕДАКТИРОВАТЬ
Это было исправлено в 5.3.29, в то время как я был на 5.3.29. Тем не менее я не могу помочь, но думаю, что с документами что-то не так, или этот вспомогательный помощник laravel
, созданный для создания проектов Laravel. Я использовал его для создания проекта, и он получал не последнюю версию.
Я не заметил, что пустая функция там, спасибо. – vfsoraki
@vfsoraki - это свойство «AuthenticateUsers' и здесь ' return $ this-> authenticated ($ request, $ this-> guard() -> user()) ?: Redirect() -> предназначено ($ this- > redirectPath()); 'и что вы подразумеваете под пустой функцией? –
Я имел в виду, что это реализовано как пустая функция, вот и все. Ничего важного :) – vfsoraki