2013-03-07 2 views
0

젠드에게 사용자가 매우 특정한 경우에 인증이 필요하다고 말하고 싶지만이 용도로 인증 어댑터를 만들고 싶지는 않습니다.PHP 젠드 인증 - 젠드에게 인증 된 사용자를 알려주는 방법은 무엇입니까?

나는 이런 식으로 뭔가 싶어 :

if ($user == 'sam') { 

    // this user is valid, tell Zend to authenticate 
    Zend_Auth::authenticate(true); 

} 

즉를, 나는 사용자가 "일부 인증 Adapter.I 젠드을 말하고 싶은에 유효 여부를 결정하는 작업을 위임하지 않으려는 이봐,이 남자는 나와 함께있어, 그래서 인증 쿠키를 설정하고 내 사이트를 사용하게하십시오. "

이 방법이 있습니까?

답변

1

당신은 할 수 Zend_Auth 스토리지에 쓰기로 :

$userData = (object)array('username' => 'Johny23'); 
Zend_Auth::getInstance()->getStorage()->write($userData); 

당신이 젠드를 automaticly 세션을 처리하는 새로운 Zend_Auth_Storage_Session 개체를 만들고, 그렇게

.

그리고, 당신이 확인할 수 있습니다 : 예함으로써 고급 사용법에서

$auth = Zend_Auth::getInstance(); 
if($auth->hasIdentity()){ 
    echo 'welcome back, ' . $auth->getIdentity()->username; 
} 
+0

당신에게 다 사람이 다음과 같다! 정말 고맙습니다 – myworkaccount

0

http://framework.zend.com/manual/1.12/en/zend.auth.adapter.dbtable.html

체크 마지막 코드, 코드는

$registry  = Zend_Registry::getInstance(); 
    $DB    = $registry['DB']; 
    $authAdapter = new Zend_Auth_Adapter_DbTable($DB,'usertable','username','password'); 

    $authAdapter->setIdentity($request->getParam('username')); 
    $authAdapter->setCredential($request->getParam('password')); 

    $select   = $authAdapter->getDbSelect(); 
    $select->where('`active` = 1'); 
    $result   = $authAdapter->authenticate(); 

    if($result->isValid()){ 
      //set user proper to zend instance 
      $this->_redirect('/index'); 
    } 
    else 
    { 
     //logout or redirect to same page 
    } 
관련 문제