2011-12-08 4 views
2

CakePHP 1.3에서 2.0.4로 앱을 업그레이드했습니다.Cakephp 2.0 및 기본 인증

이전에는 하나의 컨트롤러에서만 기본 HTTP 인증을 에뮬레이트하기 위해 보안 구성 요소를 사용할 수있었습니다.

나는 이런 일을 수행하는 데 사용 :

$this->Auth->allow(array('*')); 
$this->Security->loginOptions = array('type'=>'basic','realm'=>'api'); 
$this->Security->loginUsers = array("api"=>"123"); 
$this->Security->requireLogin(); 

이제 SecurityComponent 더 이상 기본 및 다이제스트 인증 처리를하고 나는 같은 것을 수행해야합니다

public $components = array(
    'Auth' => array(
     'authenticate' => array('Basic') 
    ) 
); 

을하지만 난에이를 사용할 때 내 ApiController는/users/login의 로그인 양식으로 리디렉션됩니다. 내가 놓친 게 있니?

+0

행운이 있나요? –

답변

1

로그인 작업으로 AuthComponent를 구성해야합니다. 케이크 책의 Configuring Authentication handlers 섹션을 확인하십시오.

public $components = array(
    'Auth'=> array(
    'loginAction' => array(
     'controller' => 'api', 
     'action'  => 'login' 
    ), 
    'loginRedirect' => array(
     'controller' => 'api', 
     'action'  => 'logged_on' 
    ), 
    'authenticate' => array(
     'Basic' => array(
     'realm' => 'api' 
    ) 
    ) 
) 
); 

또한,이 케이크는 더 이상 loginUsers 속성을 사용하여 정의하는 사용자를 지원하는지 관찰되지해야합니다

귀하의 설정은 아마이 비슷한을 볼 것이다. BasicAuthenticate 클래스를 확장하고 getUser() 메서드를 재정의해야 할 것입니다.

+0

감사합니다. – xsquirrel