2016-07-24 2 views
0

나는 웹 사용자, 스폰서 및 관리자, 각각 테이블에 연결된 3 가지 유형의 사용자가 있습니다. 서로 다른 필드가 있으므로 테이블을 병합 할 수 없습니다.cakephp 3 인증 로그인

3 가지 인증을 사용하고 싶습니다. 어떻게해야합니까?

컨트롤러 이름 1. UsersController 2. SponsorsController 3. AdminsSController

하십시오 당신의 CakePHP 3.x에서에서 할 수있는 방법을 샘플 코드 또는 가이드 라인을 나에게 보내 수

도움 주셔서 감사합니다.

+0

http://www.example.com/sponsors_panel 사용하여 로그인 패널에 액세스 할 수 있습니다 (예 : 사용자 이름, 이름, 비밀번호, 전자 메일). 그런 다음 해당 테이블에는 스폰서, 관리자 등의 레코드가 들어 있습니다. 데이터베이스 구조가 약간 다르며 올바르게 작동하는 레코드의 생성 및 연관을 얻으려면 다소 까다로울 수 있지만 결과는 모든 인증 관련 검사를 단순화합니다. –

+0

데이터베이스 테이블에 user_type 필드를 만든 다음 사용자 유형을 추가하십시오. 쉬운 blog 자습서가 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/admin_panel

내가 비슷한 상황을 처리 한 방식은 일반 필드를 포함하는 간단한 사용자 테이블을 가지고있다