laravel过滤注册路线

时间:2014-07-10 09:44:28

标签: laravel laravel-4 laravel-routing

我创建了一个注册表单,我将输入发布到名为postRegistration的路由。我想保护这条路线(我猜测过滤器可以在这里使用),以确保只处理来自称为注册的路由的请求。否则,我想指向另一条路线,即路线索引。

这是我的路线文件:

Route::get('/', 'MainController@index');

/*Registration Routes*/
Route::get('signup', array('as' => 'signup', 'uses' => 'MembersController@loadRegistration'));
Route::post('postRegistration', array('as' => 'postRegistration', 'uses' => 'MembersController@registration'));

如何使用过滤器进行此保护?我应该包含哪些内容以使其更安全(例如,为CSRF过滤?)?

谢谢,

1 个答案:

答案 0 :(得分:0)

CSRF令牌就是这么做的。它确保发布的值来自您希望它们来自的URL。以下是如何做到的:

Route::group(['before' => 'csrf'], function() {
    Route::post('postRegistration', array('as' => 'postRegistration', 'uses' => 'MembersController@registration'));
});

您还必须更新app/filters.php以处理所需的重定向:

Route::filter('csrf', function()
{
    if (Session::token() != Input::get('_token'))
    {
        //throw new Illuminate\Session\TokenMismatchException;
        return Redirect::to('/');
    }
});