2013-10-11 3 views
0

최근에 나는 케이크에 대해 공부 해왔다. 나는 앱에 대한 액세스 제어를 처리 할 것이라고 말한 인증 라이브러리를 보았지만,이 인증 라이브러리를 초기화하거나 사용할 수 없다 당신이 'UsersController'에 없을 때, 나는 그것을 원하지 않았다. 만약 URI가 admin/login, 또는 단순히/login이되기를 원하는 관리자 부분이 있다면, 나는 이걸로 내 머리를 긁어왔다. 하나, 제발 도와주세요.다른 컨트롤러에서도 Cakephp Auth를 사용할 수 있습니까?

또 다른 질문은 '$ this-> redirect'의 기능이 리디렉션을 포함하는 모든 메소드에 넣을 때 효과적이지 않은 이유는 무엇입니까? 아니면 __construct()에서도 그렇습니까?

누군가가 분명히 나에게 그 것들을 설명 할 수 있기를 바랍니다.

+0

비슷한 질문 : http://stackoverflow.com/questions/16820195/cakephp-admin-section-routing-and-redirecting – Dezigo

답변

0

응용 프로그램의 모든 컨트롤러에서 인증 구성 요소를 사용할 수 있습니다. 당신이 그것을 원할 경우에만 관리 섹션에 다음 응용 프로그램 AppController에서 beforeFilter funciton에 조건을 추가 할 수 있습니다 Auth 초기화에 같은.

// for component initialization. 
public $components = array(
    'Auth' => array(
     'authenticate' => array(
      'userModel' => 'Customer', // you can also specify the differnt model instead of user 
     'Form' => array(
     'fields' => array('username' => 'email')   
     ) 
    ) 
    ) 
} 

당신은 다음과 같은 올바른 형식으로 리디렉션 동작을 지정했는지 확인 후 케이크 인 2.3.x를 사용하거나하는 경우는

function beforeFilter(){   
    // only works with admin routing. 
    if(isset($this->request->params['prefix']) && ($this->request->params['prefix'] == 'admin')){ 
     $this->Auth->loginRedirect = array('admin' => true, 'controller' => 'pages', 'action' => 'index'); 
     $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login', 'admin' => true); 
     $this->Auth->loginAction = array('admin' => true, 'controller' => 'customers', 'action' => 'login'); 
    } 
} 

처럼 관리 라우팅에 바인딩 할 수 있습니다.

return $this->redirect('action_name'); // you can also specify the array of parameters. 
관련 문제