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

时间:2013-04-01 04:07:19

标签: authentication laravel laravel-4

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

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

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

如何将此限制为,以便用户/ 1只能看到该配置文件,如果这是当前登录的用户ID?

Auth::user()->id

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

请帮忙! 感谢。

1 个答案:

答案 0 :(得分:6)

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

这就是我的方式。

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

然后在我的路线上做。

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