【问题标题】:Laravel prevent direct access to ajax routeLaravel 阻止直接访问 ajax 路由
【发布时间】: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) 或其他操作。
  • 我知道我做了什么没用。我没有像中间件一样在中间件中设置寄存器。现在可以使用了。

标签: jquery ajax laravel


【解决方案1】:

我在内核中更改以下内容

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

我在路由中设置中间件

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 2020-05-08
    • 2017-09-02
    相关资源
    最近更新 更多