2015-05-24 143 views
1

如何防止用戶直接訪問路由並檢索數據。Laravel阻止直接訪問ajax路由

這是一個ajax請求。

我創建了一個路線

Route::get('/getmodels/{make_id}', ['as' => 'ajax.get.models', 'uses' => '[email protected]']); 

在我的內核我已經指出中間件到routeMiddleware陣列中的命名路線「ajax.get.models」 。

'ajax.get.models' => 'App\Http\Middleware\RedirectIfNotAjax’, 

在RedirectIfNotAjax我有這個。林不知道我是否正確接近這一點。

public function handle($request, Closure $next) 
{ 
    if (!$request->ajax()) { 
     return redirect()->to('/'); 
    } 

    return $next($request); 

} 

林不知道我如何防止用戶通過瀏覽器直接訪問網址像app.com/getmodels/400

+0

它看起來不錯對我來說。而不是重定向,你可能只想做中止(401)或其他事情。 – Yada

+0

我知道我做了什麼,沒有工作。我沒有把註冊中間件設置成rotue。它現在有效。 – ArkhamsFinest

回答

0

我更改內核以下

'ajax' => 'App\Http\Middleware\RedirectIfNotAjax', 

而我設置的路線中間件

Route::get('/getmodels/{make_id}', ['middleware' => 'ajax', 'as' => 'ajax.get.models', 'uses' => '[email protected]']);