带有自定义登录名的Laravel 5.4无法重定向

问题描述 投票:0回答:1

我在使用laravel 5.4登录时遇到问题,成功登录后用户仍将重定向到登录页面。我已经提到了不同的材料The documentationcustom guardcustom loginMultiple 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登录时遇到问题,成功登录后用户仍将重定向到登录页面。我指的是不同的材料文档,自定义防护,自定义...

laravel authentication laravel-5 guard
1个回答
0
投票

更改以下内容

© www.soinside.com 2019 - 2024. All rights reserved.