2013-04-01 11 views
6

Tôi đang cố gắng tìm ra cách kiểm tra người dùng đã đăng nhập trong Laravel 4 có thể truy cập tài khoản người dùng chính xác không.Kiểm tra người dùng đã đăng nhập có id chính xác trong Laravel 4

Hiện tại, đây là những gì có trong tệp routes.php của tôi.

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

Làm cách nào để hạn chế điều này để người dùng/1 chỉ có thể xem tiểu sử nếu đó là id người dùng đã đăng nhập hiện tại?

Auth::user()->id 

Trả về id đăng nhập để kiểm tra nhưng tôi không thể biết cách viết bộ lọc kiểm tra bằng {id} trong url.

Vui lòng trợ giúp! Cảm ơn.

Trả lời

6

Có một số trợ giúp thông qua kênh irc Laravel.

Đây là cách tôi đã sử dụng.

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

Sau đó, trên tuyến đường của tôi.

Route::get('user/{id}', array('before' => 'auth|user', 'uses' => '[email protected]'));