В настоящее время я работаю над входом для приложения Zend Framework, и я использую комбинацию Zend_Auth и Zend_Session с использованием адаптера базы данных (как описано в руководствах Zend Framework).Заседания Zend смешиваются
Я сделал ресурс для сессии:
class DC_Resource_DbSession extends Zend_Application_Resource_ResourceAbstract{
public function init(){
}
public function setadapter($value){
$this->dbAdapter = $value;
}
public function setSession($adapter){
//put your code here
$config = array(
'name' => 'sessions',
'primary' => 'id',
'modifiedColumn' => 'modified',
'dataColumn' => 'data',
'lifetimeColumn' => 'lifetime',
'db' => $adapter
);
Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
Zend_Session::setOptions(array('name'=>'MY_SESSION_NAME'));
Zend_Session::start();
}
}
Zend Auth затем использует сессии для хранения некоторой элементарной информации аутентификации.
Однако при тестировании входа (с одного и того же IP-адреса), если один пользователь в нашем офисе входит в систему, а другой пользователь переходит на сайт, они регистрируются как пользователь !!! Может ли кто-нибудь помочь мне понять, почему они используют сеансы друг друга?
Как вы используете Zend_Auth? –
Также вы тестируете один и тот же браузер/компьютер? – Chris
@Vladimir: $ auth = Zend_Auth :: getInstance(); $ authAdapter = новый Zend_Auth_Adapter_DbTable ($ db); $ authAdapter-> setTableName ('users') -> setIdentityColumn ('email') -> setCredentialColumn ($ password_col); $ authAdapter-> setIdentity ($ email); $ authAdapter-> setCredential ($ pass_hash); $ result = $ auth-> authenticate ($ authAdapter); if ($ result-> isValid() == true) { $ data = $ authAdapter-> getResultRowObject (null, 'password'); $ auth-> getStorage() -> write ($ data); – sunwukung