【问题标题】:Guest Student and Admin authentication来宾学生和管理员身份验证
【发布时间】:2015-08-04 22:39:50
【问题描述】:

我正在尝试使用 Laravel 4 管理用户角色,但我无法清楚地理解它是如何工作的,所以我需要一些解释。 这就是我想做的:

如果用户是访客(未登录),重定向到路由/

如果登录的用户角色等于student,则重定向到student/books

如果登录的用户角色等于admin,则重新定位到admin/index

我想要的是使用 slug 和用户角色进行过滤。 user 表具有以下列:

first_name | email | password |role

顺便说一句,我怎样才能做到这一点。我是 Laravel 的新手,所以我需要一个更好的解释。

我假设我需要的步骤是:

  • filters.php 中创建过滤器
  • routes.php 中创建路由组

【问题讨论】:

  • 我建议使用 Zizaco 的 Entrust 包来获取用户角色和权限:github.com/Zizaco/entrust 这是最常用的用户/角色包之一,学习它比自己创建系统更容易。跨度>

标签: php laravel laravel-4 laravel-routing


【解决方案1】:

我假设您在会话Auth::user()->role 中拥有存储用户角色

filters.php

Route::filter('isAdmin', function()
{
    if (Auth::guest() || Auth::user()->role !== "admin")
    {
        return Redirect::to('/');
    }
    elseif(Auth::user()->role == "admin"){

    }

});


Route::filter('isStudent', function()
{
    if (Auth::guest() || Auth::user()->role !== "student")
    {
        return Redirect::route('adm_index');
    }        }
    elseif(Auth::user()->role == "student"){
        return Redirect::route('std_books');
    }
});

routes.php

Route::group(array('before' => 'isStudent'), function()
{    
    Route::get('student/books',array('as'=>'std_books','uses'=>'BookController@method_name'));
});

Route::group(array('before' => 'isAdmin'), function()
{    
    Route::get('admin/index',array('as'=>'adm_index','uses'=>'AdminController@method_name'));  
});

【讨论】:

    猜你喜欢
    • 2021-09-15
    • 2011-11-09
    • 2014-10-08
    • 2011-09-18
    • 1970-01-01
    • 2013-07-10
    • 2016-04-19
    • 2018-12-05
    • 2011-01-11
    相关资源
    最近更新 更多