2016-07-24 219 views
0

我有3種不同類型的用戶:網站用戶,贊助商和管理員,每個用戶都關聯到一個表。由於他們有不同的字段,我無法合併表格。cakephp 3多個身份驗證登錄

我想用3個不同的auth,我該怎麼辦?

控制器名稱 1. UsersController 2. SponsorsController 3. AdminsSController

可以請你發送給我的示例代碼或引導線在CakePHP的3.x的怎麼辦

感謝您的幫助!

+0

,我已經處理過類似情況的方法是有一個簡單的用戶表只包括公用字段訪問您的登錄面板(例如用戶名,姓名,密碼,電子郵件),然後該表包含贊助商,管理員等記錄。有點不同的數據庫結構,並且可以承認有點棘手,以使這些記錄的創建和關聯正常工作,但結果會簡化所有與授權相關的檢查。 –

+0

只需在您的數據庫表中創建一個user_type字段,然後添加您的類型cakephp有一個簡單的博客教程。 http://book.cakephp.org/3.0/en/tutorials-and-examples/blog-auth-example/auth.html#blog-tutorial-authentication-and-authorization –

+0

我會保持一切,並且或者根據角色重定向,或者根據該角色切換顯示的內容並形成等等。這通常比分裂登錄URL更不容易出錯。 – mark

回答

0

有很多方法可以實現它。您可以簡單地在/ src/Controllers文件夾下創建admin_panel和sponsors_panel文件夾。

然後在這些文件夾中創建相關的控制器,並根據您的網站在/confing/routes.php中定義路由。

Router::prefix('admin_panel', function ($routes) { 
    $routes->connect('/', ['controller' => 'Admin', 'action' => 'login']); 
    $routes->fallbacks('DashedRoute'); 
}); 

Router::prefix('sponsors_panel', function ($routes) { 

     $routes->connect('/', ['controller' => 'Sponsors', 'action' => 'login']); 
     $routes->fallbacks('DashedRoute'); 
    }); 

然後你就可以使用

http://www.example.com/sponsors_panel

http://www.example.com/admin_panel