【发布时间】:2015-05-24 08:20:37
【问题描述】:
如何防止用户直接访问路由并检索数据。
这是一个 ajax 请求。
我已经创建了一条路线
Route::get('/getmodels/{make_id}', ['as' => 'ajax.get.models', 'uses' => 'DashboardController@getModelsFromMake']);
在我的内核中,我已将中间件指向命名路由“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);
}
我不确定如何阻止用户通过浏览器直接访问网址,例如 app.com/getmodels/400
【问题讨论】:
-
我觉得不错。而不是重定向,您可能只想执行 abort(401) 或其他操作。
-
我知道我做了什么没用。我没有像中间件一样在中间件中设置寄存器。现在可以使用了。