2015-05-24 2 views
1

Как вы запрещаете пользователю напрямую обращаться к маршруту и ​​извлекать данные.Laravel запрещает прямой доступ к ajax-маршруту

Это запрос ajax.

Я создал маршрут,

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

В моем ядре я уже указал промежуточное к названному маршруту «ajax.get.models» в массиве routeMiddleware.

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

В RedirectIfNotAjax у меня есть это. Я не уверен, правильно ли я подошел.

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

    return $next($request); 

} 

Я не уверен, как я запретить пользователю доступ к URL через браузер прямо как app.com/getmodels/400

+0

Он хорошо выглядит мне. Вместо перенаправления вы можете просто отказаться от (401) или чего-то еще. – Yada

+0

Я знаю, что я делал, что не работал. Я не установил регистрацию промежуточного программного обеспечения в роне, как. Он работает сейчас. – ArkhamsFinest

ответ

0

я могу изменить следующее в ядре

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

И я установить промежуточное программное обеспечение в маршруте

Route::get('/getmodels/{make_id}', ['middleware' => 'ajax', 'as' => 'ajax.get.models', 'uses' => '[email protected]']); 
Смежные вопросы