【发布时间】:2018-02-27 01:00:29
【问题描述】:
我刚刚将我的应用程序从 Laravel 5.4 升级到 v 5.5。未经身份验证的用户现在无法正确重定向。
通常,未经身份验证的用户应该被重定向到 /manage/login,但它会被重定向到 /login 路由。
在 Laravel v 5.4 中一切正常
我的应用包含两个守卫。
web.php中的路由
Auth::routes();
Route::middleware(['auth:manager'])->group(function () {
Route::get('/manage', 'Manage\AdminController@dashboard')->name('manage.home');
});
因此,在升级之前,尝试访问 /manage 的未经身份验证的用户被重定向到 /manage/login,但升级后它被重定向到 /login强>。
我在 Manage\Auth 中根据需要复制和修改了 Auth Controller。 同样,视图位于文件夹结构 Manage\Auth 中。
我在 Controllers\Manage\Auth 中的 LoginController
|
Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/manage/';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function showLoginForm()
{
return view('manage.auth.login');
}
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->flush();
$request->session()->regenerate();
return redirect('/manage');
}
protected function guard()
{
return Auth::guard('manager');
}
【问题讨论】:
-
尝试将名为
login的命名路由添加到指向App\Http\Controllers\Auth\LoginController@showLoginForm且路径为manage/login的路由