簡體   English   中英

如何在laravel中允許管理員和用戶訪問同一控制器?

[英]How to allow access to the same controller by both admin and user in laravel?

我有兩個警衛adminusers ,這里的users屬於不同類型

-users -BD -SPOC -RECRUITOR -LEADERSHIP

現在我有一些控制器,我希望管理員和用戶都可以訪問。如果其中任何一個都已登錄。但是我不想允許任何其他人無需登錄即可訪問它。

這是我的控制器

AdminController類擴展了控制器{

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

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

}

在上面的控制器中,如果我使用Middleware -auth:admin,那么只有admin才能訪問它;如果我僅使用Middleware-auth,那么我會將用戶帶到用戶登錄屏幕。我想要在admin或類型為user之間的任何人領導已登錄,然后他們便可以訪問該控制器。

我希望中間件中的條件或條件可以檢查此或那個即auth或auth:admin之間的中間件,而不是兩者都該怎么做? 我正在使用laravel .im這是新功能,請幫助

您可以在controllers使用多個middlewares

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

Adminuser都可以訪問頁面

與您在路線中可以做的一樣

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

您需要以上之一

Web是您的config/auth.php定義的默認guard

當您在某處使用它時

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

將按照以下方式工作,因為默認情況下放置了web guard

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

您可以使用中間件概念。 中間件正在簽入路由文件。下面是檢查用戶身份驗證的方法。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM