我正在尝试研究如何测试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}。
请帮忙! 感谢。
答案 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'));