Laravel 5-根据用户在身份验证中的角色将用户重定向到特定页面


Laravel 5 - Redirecting a user to a specific page based on their role on authentication

我正在将Bican Roles包与Laravel 5一起使用,我正试图弄清楚如何修改AuthController类,以便根据用户的角色将用户重定向到他们指定的页面。我在某个地方读到一篇文章,说我需要创建方法authenticate来覆盖默认函数,但我不确定如何包括bican类的所有方法。例如,在bicon的github页面上,它说要使用

$user->level获取用户级别,但我得到一个错误,

protected function authenticated($user)
    {
        dd($user->level);
    }

如果我理解问题:

  1. 您可以创建中间件来检查用户在特定路由上的角色。

  2. 在方法authenticated()中,未定义变量$usersbican/roles包的文档使用Auth::user()的简写来获取当前用户的数据。所以你应该使用:

    Auth::user()->is('YOUR_ROLE_NAME');          # To check user role
    Auth::user()->can('YOUR.ACTION');            # To check user permission
    Auth::user()->level();                       # To check user level  
    Auth::user()->allowed('ACTION', $someModel); # To check user permission to object
    

我在某个地方读到一篇文章,我需要创建方法authenticate来覆盖默认函数

直到默认函数在app目录中,它才会通过。但是Laravel控制器非常灵活,您可以用其他方式来完成它(先看)。