【问题标题】:Laravel 4 auth role based page accessLaravel 4 auth 基于角色的页面访问
【发布时间】:2013-11-07 16:05:07
【问题描述】:

将页面访问限制为身份验证角色/许可的最佳方法是什么?我正在考虑使用Auth::user()->role 进行检测,它将被放入每个路线部分。那么,在 Laravel 4 中有没有更好的方法或最佳实践呢?

谢谢。

【问题讨论】:

    标签: php authentication laravel-4


    【解决方案1】:

    您可以尝试这样的事情(使用过滤器进行角色检查)

    Route::filter('role', function()
    {
        return Auth::user()->role;
    });
    

    然后在您的路线中,您可以像这样使用 (role) 过滤器

    Route::get('protectedPage1', array('before'=>'role', function($role) {
        if($role != 'admin') {
            return Redirect::to('home');
        }
    }));
    
    Route::get('protectedPage2', array('before'=>'role', function($role) {
        if($role != 'admin') {
            return Redirect::to('home');
        }
    }));
    

    更新:

    Route::filter('role', function()
    {
        if(Auth::user()->role != 'admin') {
            return Redirect::to('home');
        }
    });
    
    Route::get('protectedPage1', array('before'=>'role', function() {
        // do your job
    }));
    

    【讨论】:

    • 嘿,你的例子似乎没有用。一旦过滤器返回一个值,它就会在网页上显示返回的数据并停止处理其余代码。
    猜你喜欢
    • 2013-05-31
    • 1970-01-01
    • 2015-12-09
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 2011-10-12
    相关资源
    最近更新 更多