2014-04-15 6 views
1

내 웹 사이트에 두 종류의 사용자가 있습니다. 1. 사용자 (프론트 엔드) 2.Admin (백엔드)Cakephp admin과 사용자 로그인이 동시에 올바르게 작동하지 않습니다.

두 가지 유형의 사용자 로그인에 cakephp auth 구성 요소를 사용했습니다. 내 문제는 내가 한 유형의 사용자를 사용하여 로그인 할 때 다른 유형의 사용자 (예 : 프론트 엔드에서 사용자로 로그인)에 로그인 할 때 백업을 새로 고침하면 관리자 유형의 사용자와 함께 logedin 및 동일한 문제가 표시됩니다.

다음은 관리자 및 사용자 용 인증 코드입니다.

이이 나에게

도와주세요

public $components = array(
    'Auth' => array(
      'authenticate' => array(
       'Form' => array(
        'userModel' => 'Admin', 
        'fields' => array(
         'username' => 'username', 
         'password' => 'password' 
        ), 
        'scope'=>array('Admin.is_active' => 1) 
       ) 
      ) 
     ) 
    ); 


public function beforeFilter() { 

    $this->Auth->loginAction = array('controller' => 'admins', 'action' => 'index'); 
    $this->Auth->logoutRedirect = array('controller' => 'admins', 'action' => 'index'); 
    $this->Auth->loginRedirect = array('controller' => 'admins', 'action' => 'dashboard'); 

} 

내가 사용하고 내 관리자 플러그인 컨트롤러 코드 CakePHP의 2.4.1

입니다

public function beforeFilter() { 
    if($this->Auth->user()){ 
    $this->set('logged_in', true); 
    }else{ 
    $this->set('logged_in', false); 
    } 
    //Configure AuthComponent 
    $this->Auth->userScope = array('User.is_active' => '1'); 
    $this->Auth->loginAction = array('controller' => 'users', 'action' => 'signin','plugin' => 'umgmt'); 
    $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'signin','plugin' => 'umgmt'); 
    $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'index','plugin' => false); 

    } 

응용 프로그램/컨트롤러에 AppController.php 파일입니다

+0

로그인 액션은 어디에 있습니까? –

+0

Moyed Ansari 위의 업데이트 코드가 관리자 로그인 작업 – cakedev

답변

0

오케이. 먼저,과 out 변수를 설정할 필요가 없습니다. AuthComponent는 AuthComponent::loggedIn() 메소드를 사용하여이 기능을 제공합니다.

두 번째로 인증 유형을 설정하지 않았습니다. 이 책의 내용에 따르면 Controller을 사용하면 액션 단위로 인증을 관리 할 수 ​​있습니다.

따라서 승인 유형을 포함하도록 구성 요소 구성 또는 beforeFilter()을 업데이트해야합니다.

$this->Auth->authorize = array('Controller');

는 그런 다음 라우팅 프리픽스를 사용하고 기반으로 사용자의 역할을 확인하기 위해 AppControllerisAuthorized() 방법을 사용할 수 있습니다.

이 구현은 모두 covered in the Cake book in the chapter on Auth입니다.

+0

DavidYell,이 두 가지 유형의 사용자 (admin, user) 로그인에 대해 Cake AuthComponent를 동시에 사용할 수 있습니까? 실제로 문제는 그 것이다. "Auth를 사용하여 프론트 엔드에서 일반 사용자로 로그인 할 때 i는 자동으로 백엔드 관리자로 로그인하여 mw 대시 보드를 표시합니다". 당신이 내 문제를 해결하도록 도울 수 있기를 바랍니다. 답장을 보내 주시면 감사하겠습니다. $ this-> Auth-> authorize = array ('Controller'); 필터 전에는 로그인 사용자가 동시에 멈추지 않습니다. – cakedev

관련 문제