我在使用laravel 5.4登录时遇到问题,成功登录后用户仍将重定向到登录页面。我已经提到了不同的材料The documentation,custom guard,custom login,Multiple Guard,但是我无法获得解决方案。我也尝试在RedirectIfAuthenticated中使用dd($ guard),但返回null。登录后如何重定向并保持用户在主页上?
Web.php
Route::get('/', 'HomeController@index');
// Authentication routes...
Route::get('auth/login', 'Auth\LoginController@getLogin')->name('login');
Route::post('auth/login', 'Auth\LoginController@postLogin');
Route::get('auth/logout', 'Auth\LoginController@getLogout')->name('logout');
// Registration routes...
Route::get('auth/register', 'Auth\RegisterController@getRegister')->name('register');
Route::post('auth/register', 'Auth\RegisterController@postRegister');
// Password reset link request routes...
Route::get('password/email', 'Auth\PasswordController@getEmail');
Route::post('password/email', 'Auth\PasswordController@postEmail');
// Password reset routes...
Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
Route::post('password/reset', 'Auth\PasswordController@postReset');
登录控制器
use AuthenticatesUsers;
protected $redirectTo = '/home';
protected $redirectAfterLogout = '/auth/login';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function guard()
{
return Auth::guard('users');
}
protected function authenticated(Request $request, $user)
{
if(Auth::check())
{
return redirect()->route('home');
}
else
{
return redirect()->route('login');
}
}
public function getLogin()
{
return view('auth.login');
}
public function postLogin(Request $request)
{
$this->validate($request, [
'username' => 'required',
'password' => 'required|min:6',
]);
$credentials = array(
'username' => $request->input('username'),
'password' => $request->input('password'),
);
$userData = User::where('username',$request->username)->first();
if (auth()->attempt($credentials, $request->has('remember')))
{
return redirect($this->redirectTo);
}
return redirect()->back()
->withInput($request->only('username', 'remember'))
->withErrors([
'username' => 'This credentials do not match our records.',
]);
}
我还尝试过成功登录后将返回的内容更改为返回view('home'),能够重定向到主页,但不会使用户保持登录状态。
if (auth()->attempt($credentials, $request->has('remember')))
{
return view('home'); // The changes made
}
RedirectIfAuthenticated.php] >>
public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { return redirect('/home'); } return $next($request); }
我也尝试过
if(Auth::check())
{
return redirect('/home');
}
return $next($request);
我在使用laravel 5.4登录时遇到问题,成功登录后用户仍将重定向到登录页面。我指的是不同的材料文档,自定义防护,自定义...
更改以下内容