2013-10-18 2 views
1

내 응용 프로그램에는 특정 수정이 필요합니다. 아래에 나열하려고합니다 :CakePHP에서 사용자 등록/로그인과 역할/권한을 사용자 정의 하시겠습니까?

  1. 사용자 등록 : 전자 메일을 확인해야합니다.
  2. 사용자 등록 : 사용자는 다른 역할로 등록 할 수 있습니다.
  3. 사용자 로그인 : 다양한 컨트롤러/동작 및보기에 대한 액세스 제어 로그인 한 사용자를 기반으로합니다.

이메일 확인을위한 플러그인이 있으며 사용자 액세스 제어를위한 Acl이 있습니다. 그러나 나는 Cake에 익숙하지 않으며 네이티브 세션과 쿠키 및 토큰 (전자 메일 검증 용)에 익숙합니다. 그래서 $this->Session을 위해 Auth 모듈을 건너 뛰고 토큰 화 스크립트를 작성하면 더 바람직한 방법은 무엇입니까? 보안 외에도 Auth을 사용하면 어떤 이점이 있습니까?

편집 (하나 개 더 질문) : CakePHP의에서 우리는 법이 허용하는 사용하는 경우 :

if($this->Auth->user('roles') == 'usertype1') { 
      $this->Auth->allow('index', 'add', 'edit', 'delete'); 
     } 

나는 컨트롤러 방법에 대한 액세스를 처리 할 수 ​​있습니다. 하지만 사용자 테이블에 '보류 중'열을 추가하여 사용자가 대기 중이거나 활성화되어 있는지 여부를 인증으로 확인할 수 있도록하는 방법은 무엇입니까? 이 작업이 완료되면 확인 전자 메일 부분 만 작성하면됩니다. 또는 세션 변수 "isactive"로만 세션을 검사하고 위의 원래 질문에서와 같이 메소드 검사를 수행하는 것이 좋습니다.

+0

팁 : [TinyAuth] (http://www.dereuromark.de/2011/12/18/tinyauth-the-fastest-and-easiest-authorization-for-cake2/)가 효과가 있는지 확인하십시오. 보류중인 필드의 경우 전자 메일을 확인하는 토큰이있는 전자 메일을 보내십시오. [here] (http://www.dereuromark.de/2010/06/25/tools-plugin-part1-codekey/)를 참조하십시오. – mark

답변

0

Admin routing (routing prefix) 또는 ACL을 사용하여 원하는 기능을 쉽게 얻을 수 있습니다. 당신은 이메일 도우미의 ehelp로 이메일 검증 부분을 작성해야합니다. 두 번째 질문 : 데이터베이스에 사용자가 활성 상태임을 나타내는 필드를 가질 수 있습니다. 부울 유형의 '활성'이라고 가정 해 보겠습니다. 이 값은 사용자가 자신의 이메일을 확인했는지를 TRUE로 설정합니다. 당신은 이런 식으로

$this->Auth->authenticate = array(
      AuthComponent::ALL => array(
       'userModel' => 'User', 
       'fields' => array(
        'username' => 'username', 
        'password' => 'password' 
       ), 
       'scope' => array(
        'User.active' => 1, 
       ) 
      ), 'Form' 
     ); 

활성 로그인 할 수 있습니다 만 활성 사용자가 로그인 할 수 있도록합니다.

관련 문제