2013-04-19 1 views
0

Хороший день для всех,Как добавить данные в Zend_Auth объекта

У меня есть следующий код, который присоединяет хранит данные для Zend_Auth объекта

$auth  = Zend_Auth::getInstance(); 

    $dbAdapter = Zend_Db_Table::getDefaultAdapter(); 

    $authAdapter = new Zend_Auth_Adapter_DbTable(
    $dbAdapter, 
       'account', 
       'email', 
       'password', 
       'delete_flag=0' 
    ); 
    //MD5(?) AND .. add this along with the prev where condn of delete flag... 

    $authAdapter->setIdentity($loginDataArray['email']) 
    ->setCredential($loginDataArray['password']); 

    $result = $auth->authenticate($authAdapter); 
    var_dump($result); 

    if ($result->isValid()) { 

     $authStorage = $auth->getStorage(); 

     // the details you wan to store in the session 
     $userDetails = array();   

     $userDetails['account_id'] = $account_id; 
     $userDetails['email']  = $loginDataArray['email']; 

     $authStorage->write($userDetails); 
} 

Теперь, Как я добавить больше данных в дальнейшем часть сессии. Как отредактировать один и тот же объект Zend_Auth позже.

ответ

1

Состояние аутентификации хранится в зарегистрированном хранилище Auth. По умолчанию это Zend_Session. Вы можете получить сеанс этого

$namespace = new Zend_Session_Namespace('Zend_Auth'); 

затем сделать Somthing как это

$namespace->newname = "newvalue"; 
+0

Спасибо Chandresh. :) .. mujhe tho aapke desk pe aake pooch lena chahiye tha .. :) – Archer

+0

Cheers @Archer. В следующий раз aap phone o friend kar sakte hai. Во всяком случае, обходный поток hume aisa hi ehsaas karata hai ki hum aas paas me hai :) –

+0

ну .. я буквально переменил его .. mujhe aapke desk pe aana chahiye tha ..: D – Archer

1

нормально, вы не 'изменить' Zend_Auth идентичность. У вас либо есть личность, либо нет. Вы можете устанавливать, читать, писать или очищать хранилище через объект Zend_Auth.

Однако многие из нас используют эти же данные для различных целей отображения, поэтому частое решение заключается в том, чтобы установить данные в другое пространство имен сеансов или в раздел реестра, когда идентификатор хранится или просто обновлять сеанс, который создает Zend_Auth as chandresh _ cool предлагает.

if ($result->isValid()) { 

     $authStorage = $auth->getStorage(); 

     // the details you wan to store in the session 
     $userDetails = array();   

     $userDetails['account_id'] = $account_id; 
     $userDetails['email']  = $loginDataArray['email']; 
     //add user data to registry 
     $user = Zend_Registry::set('user', $userDetails); 

     $authStorage->write($userDetails); 
} 

, если вы действительно хотите сделать свою собственную вещь, вы можете написать свой собственный адаптер хранения, реализации Zend_Auth_Storage_Interface или вы можете написать свой собственный адаптер Auth путем внедрения Zend_Auth_Adapter_Interface и включить компонент хранения в адаптере.

Множество вариантов, удачи.

 Смежные вопросы

  • Нет связанных вопросов^_^