使用Laravel注册路线但让它们无法进入

时间:2014-07-26 18:18:48

标签: laravel laravel-4

我正在尝试使用Laravel制作单页CRUD应用程序。我将使用ajax来创建,编辑和删除我的实体,以及渲染部分视图。相应的控制器方法将处理信息并返回视图。

我想注册路线,以便在必要时调用不同的方法。我没有看到任何其他方式:

enter image description here

但是,注册它们以便我可以执行此类{{ Form::open(['route' => ['cities.store', $city->id]]) }}之类的操作将允许通过URL进行访问,而我只想通过我将在该页面CRUD中创建的工具访问这些路径。< / p>

我只能考虑应用前置过滤器,但过滤器会是什么?另外,关于如何处理这种情况的任何其他想法?

2 个答案:

答案 0 :(得分:2)

我必须使用我创建的Web服务执行类似的操作。基本上,我只希望我的应用程序能够访问我创建的路由。

我最终做的是为每个发送的请求添加一个哈希键,然后在控制器中检查这个键值。因此,只有当密钥存在并与发送的密钥匹配时,您才会处理该请求。

或者,如果您使用的是表单,则可以执行以下操作:

  //check if request was sent from our form
    if ( Session::token() !== Input::get( '_token' ) ) {
        return Response::json( array(
            'msg' => 'Unauthorized access attempt'
        ) );
    }

希望这有帮助。

答案 1 :(得分:0)

另一种不需要令牌但不太安全的方式,你必须知道你需要什么, 正在使用laravels请求信息

if (Request::ajax())
{
//your action
}else{
//error
}

请注意,这仅适用于您的应用程序始终使用ajax时,您甚至可以在之前的过滤器中键入此内容并将其添加到所有需要的路径