2015-04-17 87 views
1

在我的驗證,我有:Laravel 5驗證返回302和原始登錄屏幕響應

class AuthController extends Controller { 
    public function __construct(Guard $auth, Registrar $registrar) 
{ 
    $this->auth = $auth; 
    $this->registrar = $registrar; 

    $this->middleware('guest', ['except' => 'getLogout']); 
} 

public function checkSession() 
{ 
    return 'test'; 
    if (!Auth::check()){ 
     return false; 
    } 
    //return Response::json(['guest' => Auth::guest()]); 
} 
} 

這是事物的一部分用戶自動重定向回登錄屏幕,如果他們的會話已過期:

$(function() { 
    setInterval(function checkSession() { 
     $.get('/check-session', function (data) { 
      if (data.guest) { 
       location.reload(); 
      } 
     }); 
    }, 5000); 
}); 

但它不工作。 checkSession請求不會返回任何內容,並以302返回。另一個請求也會立即發生,它將返回登錄屏幕的源代碼。


routes.php文件

Route::group(['namespace' => 'Auth'], function() { 
    Route::get('/', '[email protected]'); 
    Route::post('login', ['as' => 'login', 'uses' => '[email protected]']); 
    Route::get('/logout', ['as' => 'logout', 'uses' => '[email protected]']); 
    Route::get('check-session', ['as' => 'session.check', 'uses' => '[email protected]']); 
}); 

Route::group(['middleware' => 'auth'], function() { 

    ... 

}); 

我試圖只是把它上面的組,但它給出了相同的結果。

+0

向我們展示你的路線嗎? – lukasgeiter

+0

我猜一些過濾器正在捕獲該請求並重定向到另一頁。如果該路線上有過濾器,請同時顯示過濾器。 – user3158900

+0

這沒有多大意義。在此功能中,您正在檢查某人是否已登錄,但您有一個過濾器,只有當某人登錄時纔會通過該過濾器。 – user3158900

回答

4

我做了以下內容和它的作品:

$this->middleware('guest', ['except' => ['getLogout', 'checkSession']]); 

相反的: