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

Posted

技术标签:

【中文标题】测试登录用户在 Laravel 4 中具有正确的 id【英文标题】:Test logged in user has correct id in Laravel 4 【发布时间】:2013-03-22 04:13:32 【问题描述】:

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

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

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

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

Auth::user()->id

返回要测试的登录 id,但我不知道如何编写一个过滤器来检查它是否等于 url 中的 id。

请帮忙! 谢谢。

【问题讨论】:

【参考方案1】:

通过 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'));

【讨论】:

以上是关于测试登录用户在 Laravel 4 中具有正确的 id的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 具有不同登录凭据的多种用户类型

Laravel 4 身份验证不起作用

如何在登录具有 Spatie 的 Laravel 权限的用户之前检查用户角色?

使用没有管理员连接的LDAP在Laravel中进行身份验证/登录?

用户应该是 Laravel 中的资源吗?

无法测试事件是不是具有 Laravel 5 和 PHPUnit 的属性