2016-12-30 122 views
0

我已經改變了受保護的$ redirectTo ='/ tasks';在LoginController和RegisterController中。如何在Laravel 5.3中登錄和註銷後更改重定向路徑?

public function handle($request, Closure $next, $guard = null) 
{ 
    if (Auth::guard($guard)->check()) { 
     return redirect('/tasks'); 
    } 

    return $next($request); 
} 

即使我做了這些改變,沒有什麼作品,並且頁面重定向到/登錄路徑: 另外,我已經在RedirectIfAuthenticated中間件如下改變了重定向路徑。

回答

0

這是因爲$redirectTo將在您登錄後生效。首先您需要登錄。這就是爲什麼它發送你到/login的路徑。因此,如果您想要在LoginRegistration之後更改其重定向的位置,請更改這些$redirectTo屬性。如果您不想讓用戶登錄,則應該刪除該路線的中間件auth

編輯: 那麼你已經錯過的是laravel重定向你回到預期的頁面,如果沒有,則它會重定向到$ redirectTo。因此,如果您嘗試訪問主頁並且需要經過身份驗證的用戶,那麼在登錄後它會重定向回主頁,而不是/任務,因爲這是您要去的地方。如果你想總是重定向到那個路徑而不是預期的路徑,你可以做如下的事情。

protected function sendLoginResponse(Request $request) 
{ 
    $request->session()->regenerate(); 

    $this->clearLoginAttempts($request); 

    return redirect()->to($this->redirectTo); 
} 

將此代碼添加到您的LoginController,你總是會被重定向到$redirectTo

+0

我只是想被重定向到/任務路徑。如何做到這一點? – bruce

+0

你是什麼意思?你的意思是總是重定向到那條路? –

+0

如果用戶登錄成功,那麼我需要重定向到該路徑,例如/任務。 – bruce

0

看到你的代碼後,我得到你的IF語句沒有返回true。你必須先看看它是什麼回來。此外,只需測試代碼,無需任何條件就可以重定向到您想要的位置。

此外,我在我的應用程序登錄後使用此代碼進行重定向。

public function handle($request, Closure $next) 
{ 
    if ($this->auth->check()) { 
     return redirect('/home'); 
    } 

    return $next($request); 
} 
+0

在Laravel的官方文檔中,它表示您只需要更改$ redirectTo屬性。但這不是那種方式。即使我更換了中間件,它也無法正常工作。我不知道爲什麼你必須把代碼Farzin Farzanehnia建議。 – bruce