Laravel 4阻止经过身份验证的用户查看其他用户配置文件

elo*_*dev 4 php restful-authentication laravel-4

我想知道laravel 4以下是可能的.我有一个过滤器来检查用户是否在具有user/*的所有路由上进行身份验证.我的过滤器正如它所设想的那样工作,但是让我们说用户登录后url会看起来像这样user/id.如何阻止经过身份验证的用户查看其他用户?

Ami*_*Bar 6

另一种方法是更改​​您的网址..为什么网址像user/{id}?只需将其更改为例如

 user/profile
Run Code Online (Sandbox Code Playgroud)

并在控制器内执行以下操作:

$user = Auth::user();
Run Code Online (Sandbox Code Playgroud)

这样用户只是假不能是id ..我只在管理区域使用带有id的网址,我需要编辑一些用户:

/admin/{id}/edit
Run Code Online (Sandbox Code Playgroud)


The*_*pha 5

在您的Auth过滤器中,您可以访问路由参数 ( 'user/{id}') 并可以id使用id传入的url类似检查登录用户

Route::filter('auth', function($route)
{
    // get the id from rouqe
    $id = $route->getParameter('id');
    if( Auth::check() && Auth::user()->id != $id) {
        // not authenticated user, so access is denied
        return Redirect::to('/');
    }
});
Run Code Online (Sandbox Code Playgroud)