2011-09-09 2 views
0

이미 로그인 양식을 만들었고 테이블에 대해 인증 할 수 있습니다.Zend_Auth를 구현하는 가장 좋은 방법은 어디에서 찾을 수 있습니까?

Zend_Auth를 사용해야합니까?

Zend_Auth를 구현하는 가장 좋은 방법은 어디에서 찾을 수 있습니까?

감사

+1

Zend_Auth_Adapter_Interface를 구현하는 것이 좋습니다? \ – Corbin

+0

내 경험이 다른 경우 가장 좋은 방법은 적어도 완전히 다른 123 가지를 찾아야합니다. – PurplePilot

+0

내 대답은 좋음) http://stackoverflow.com/questions/2046608/practical-zend-acl-zend-auth-implementation-and-best-practices – SMka

답변

1

내가 인증하기 위해 다음과 같은 방법을 사용하십시오 컨트롤러에서 나는이 같은 함수를 호출,

function authenticate ($data) 
{ 
    $db = \Zend_Db_Table::getDefaultAdapter(); 
    $authAdapter = new \Zend_Auth_Adapter_DbTable($db); 

    $authAdapter->setTableName('usuarios2'); 
    $authAdapter->setIdentityColumn('user'); 
    $authAdapter->setCredentialColumn('password'); 
    $authAdapter->setCredentialTreatment('MD5(?) and active = 1'); 


    $authAdapter->setIdentity($data['user']); 
    $authAdapter->setCredential($data['password']); 

    $auth = \Zend_Auth::getInstance(); 
    $result = $auth->authenticate($authAdapter); 

    if ($result->isValid()) { 

     if ($data['public'] == "1") { 
      \Zend_Session::rememberMe(1209600); 
     } else { 
      \Zend_Session::forgetMe(); 
     } 

     return TRUE; 

    } else { 

     return FALSE; 

    } 
} 

$ 데이터가 로그인 폼에서 POST 요청입니다 : 인증합니다 ($이 -> _ 요청 -> getPost()) 조치에

당신이 사용자의 신원을 확인하려는 경우 단지 :

$auth = Zend_Auth::getInstance(); 
if ($auth->hasIdentity()) { 
    $identity = $auth->getIdentity(); //this is the user in my case 
} 
내가 체크 박스 (이름 공개)가 로그인 폼에서

경우는이 사용자가 브라우저 (Zend_Session :: forgetMe())

을 닫을 때 삭제됩니다 otherwhise하여 인증 정보를 쿠키에 저장됩니다 확인

이것은 인증 프로세스에 대한 간략한 검토입니다.

관련 문제