2012-02-22 4 views
0

로그인/사용자 리디렉션하지 않습니다 ::으로, beforeFilter() CakePHP는 2.0 인증 내가 AppControler에서 일부 코드가

$this->Auth->authorize  = array('Actions' => array('actionPath' => 'controllers')); 
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login'); 
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login'); 

하지만 인증은 사용자/로그인에 저를 리디렉션하지 않습니다 브라우저에서 비공개 액션을로드하는 방법. 대신 그것은 나를 '/'로 리디렉션합니다. 내가 뭘 잘못하고있어?

답변

1

사용자 컨트롤러에서 로그인 동작에 대한 사용 권한을 부여하지 않았기 때문일 수 있습니다. 이를 사용자 컨트롤러 상단에 추가하십시오.

function beforeFilter(){ 
    parent::beforeFilter(); 
    $this->Auth->allow('login'); 
} 

참고로 loginAction은 기본적으로/users/login으로 기본 설정되어 있습니다. logoutRedirect도 마찬가지입니다. 이미 기본 위치로 이동하기를 원하기 때문에 둘 다 제거하십시오.

UPDATE

당신은 AppController가의 상단에있는 구성 요소를 포함 적이 있습니까?

public $components = array('Auth'); 

확인 다른 것은 아직 로그인하지 않은 것입니다. 당신은 이미 로그인되어 있지만, 사용자 로그인, 그것뿐만 아니라 리디렉션 할 수 있습니다에 대한 컨트롤러 내에서 특정 작업에 대한 권한이 부여되지 않은 경우.

+0

이미 $ this-> Auth-> allow ('login') beforeFilter가 UsersController에 있습니다. 그리고 'users/login'으로 가면 로그인 페이지가 보입니다. – Igor

+0

위 업데이트를 참조하십시오. –

관련 문제