2015-09-22 69 views
0

我在與獲得內置Laravel驗證重定向到正確的路徑時,在不登錄的用戶。Laravel缺省Auth不是重定向到正確的路徑

從文檔的問題看來我可以添加下面以AuthController.php

// redirect paths 
    protected $redirectPath  = '/profile'; 
    protected $loginPath   = '/home'; 
    protected $redirectAfterLogout = '/home'; 

添加這應該讓我來控制用戶在各種環境下都被重定向但是沒有人可以有任何效果。

通過代碼挖我可以看到在auth /登錄路由設置在中間件/ authenticate.php手柄功能按照以下:

public function handle($request, Closure $next) 
    { 
     if ($this->auth->guest()) { 
      if ($request->ajax()) { 
       return response('Unauthorized.', 401); 
      } else { 
       return redirect()->guest('auth/login'); 
      } 
     } 

     return $next($request); 
    } 

如果我在這裏改變路徑它的工作原理然而,這是當然不是實現它的最好方法。

我使用Laravel 5.1.7,並嘗試PHP的工匠路線:明確

任何意見/建議將是夢幻般的。

+0

有改變身份驗證的中間件的路徑沒有問題的,因爲它是可定製根據自己的需要 – CodeRomeos

+0

嗨@CodeRomeos -Thanks響應。我可以看到這一點,但爲什麼在文檔中它表明我可以更改authcontroller中的重定向,如果它們沒有任何影響...看起來像什麼一定是錯誤的地方在這裏... –

+0

你可以創建一個路線並命名它作爲登錄和auth中間件,你可以用你的命名路由代替'auth/login',例如 - > guest(route('login')) – CodeRomeos

回答

0

在您的控制器中使用您想要從註銷用戶隱藏的代碼塊。此代碼會將任何註銷的用戶重定向到$loginPath,您還可以使用protected $redirectTo = 'yourDesirepath'在登錄後重定向用戶。

public function __construct() 
{ 
    $this->middleware('auth'); 
} 

或者如果你想你只能保證幾個方法。在你的方法中添加這行代碼。

$this->middleware('auth'); 
相關問題