登录用户的测试在Laravel 4中具有正确的ID

mar*_*wie 6 authentication laravel laravel-4

我正在尝试研究如何测试Laravel 4中的登录用户是否可以访问正确的用户帐户.

目前这是我的routes.php文件中的内容.

Route::get('user/{id}', array('before' => 'auth', function(){
    // logged in user
    // but can visit any account!!
}));
Run Code Online (Sandbox Code Playgroud)

我如何限制这个,所以user/1只能看到配置文件,如果这是当前登录的用户ID?

Auth::user()->id
Run Code Online (Sandbox Code Playgroud)

返回要测试的登录ID,但我无法弄清楚如何编写一个过滤器来检查它是否等于url中的{id}.

请帮忙!谢谢.

mar*_*wie 6

通过Laravel irc频道获得了一些帮助.

这就是我的方式.

Route::filter('user', function($route, $request)
{
    if( $request->segment(2) != Auth::user()->id)
    {
        return Redirect::to('/login');
    }
});
Run Code Online (Sandbox Code Playgroud)

然后在我的路线上做.

Route::get('user/{id}', array('before' => 'auth|user', 'uses' => 'UsersController@index'));
Run Code Online (Sandbox Code Playgroud)