【问题标题】:Laravel 5.5 - After upgrading auth is not redirecting properlyLaravel 5.5 - 升级身份验证后没有正确重定向
【发布时间】: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 的路由

标签: authentication laravel-5


【解决方案1】:

我遇到了同样的问题,解决起来很简单。

关键是,如果您使用 guards,您可能在 app/Exceptions/Handler.php 中处理未经身份验证的异常。使用 laravel 5.4 时。

更新到 5.5 后,这是在 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php 下完成的。

你应该参考这个Laravel 5.5 change unauthenticated login redirect url了解更多关于如何解决它的细节。

【讨论】:

    猜你喜欢
    • 2016-05-13
    • 2017-12-24
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多