如何允许管理员和用户在laravel中访问同一个控制器?

时间:2018-03-24 05:34:57

标签: php laravel

我有两名警卫adminusers,此处users属于不同类型

-users -BD -SPOC -RECRUITOR -LEADERSHIP

现在我有一些控制器,我希望管理员和用户都可以访问。如果他们中的任何人都登录了。但我不想让其他人在没有登录的情况下访问它。

这是我的控制器

类AdminController扩展Controller {

protected $redirectTo = '/admin/dashboard';
protected $redirectAfterLogout = '/admin/login';

public function __construct()
{
    $this->middleware('auth:admin');
}

}

在上面的控制器中,如果我使用中间件-auth:admin然后只有管理员才能访问它,如果我只使用中间件-auth,那么我将把用户带到用户登录screen.i想要管理员之间的任何人登录类型领导的用户然后他们能够访问该控制器。

我想在中间件中检查或者检查这个或那个,即auth或auth之间的中间件:admin不是两者 我该怎么做呢? 我正在使用laravel。我是新手,请帮助

2 个答案:

答案 0 :(得分:0)

您可以在middlewares

中使用多个controllers
public function __construct()
    {
        $this->middleware('auth:web,admin');
    }
  

Admin user 都有访问页面

您可以在路线中执行相同的操作

Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => ['auth:web,admin']], function() {
Route::get('url','somecontroller@method');
});
  

您需要以上

之一

Webguard

中定义的默认config/auth.php

当你在某处使用时

public function __construct()
        {
            $this->middleware('auth');
        }

将与下面相同,因为默认情况下会放置web guard

public function __construct()
        {
            $this->middleware('auth:web');
        }

答案 1 :(得分:-1)

您可以使用Middleware概念.Middleware正在检查路由文件。检查用户身份验证的方法。

Route::group(['middleware' => 'admin.user'], function () {
// Your routes which you want to allow after login
}
相关问题