Laravel 重定向循环

9 浏览
0 Comments

Laravel 重定向循环

我找不到我的拼图。当我加载页面时,Chrome浏览器会显示:本地主机页面无法正常工作,本地主机重定向次数过多。我猜这是一个循环。我可能做错了一些事情,但我无法理解。以下是我的代码。\n路由:\n

Route::get('admin/login', 'Auth\AuthController@getlogin');
Route::post('admin/login', 'Auth\AuthController@postLogin');
Route::get('admin/logout', 'Auth\AuthController@getLogout');
Route::group(['middleware' => 'auth'], function () {
    Route::Auth();
    Route::get('/admin', 'admin\HomeController@index');
});
Route::get('/', 'guest\HomeController@index');//access all

\nAuthController:\n

middleware($this->guestMiddleware(), ['except' => 'logout']);
    }
    protected function postLogin(Request $request){
        $email = $request['email'];
        $pass = $request['password'];//Hash::make(Input::get('password'));
        $user = Admin::where(['email' => $email])->first();
        if($user && $user->password == $pass) {
            Auth::login($user);
            dd(Auth::user()->toArray());
            return redirect()->intended('/admin');
        }
        else {
            $error = "Invalid username or password";
            return view("admin/login")->with("error", $error);
        }
    }
    protected function getLogout()  {
        Auth::logout();
        return redirect()->intended('admin/login');
    }
}

\nModel:\n


\nAuthenticate.php:\n

guest()) {
            if ($request->ajax() || $request->wantsJson()) {
                return response('Unauthorized.', 401);
            } else {
                return redirect()->guest('admin/login');
            }
        }
        return $next($request);
    }
}

\nconfig/auth.php:\n

//---------------before-------------------
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
//----------------after editing--------------------------
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\Admin::class,
    ],

0
0 Comments

Laravel重定向循环问题的原因是在Auth路由中应用了auth中间件。解决方法是将auth中间件从Auth路由中移除。具体代码如下:

Route::Auth();    
Route::group(['middleware' => 'auth'], function () {
    Route::get('/admin', 'admin\HomeController');
});

在上述代码中,通过将Auth路由与auth中间件分开,可以解决Laravel重定向循环的问题。

0