Używam Zend_Auth dla jednego z moich projektów, ale jak dotąd nie wiem, jak ustawić czas życia sesji, lub jak go rozszerzyć (powiedzmy, że powinien potrwać 5 minut i należy przywrócić że gdy użytkownik dokonuje czynności), tutaj jest mój kod inicjalizacji:Ustawianie i przedłużanie czasu trwania sesji przy użyciu Zend_Auth
$authAdapter = new Zend_Auth_Adapter_DbTable($this->_model->pdo);
$authAdapter->setTableName('normal_folks')
->setIdentityColumn('username')
->setCredentialColumn('password');
$post = $this->_request->getPost();
$authAdapter->setIdentity($post['username'])
->setCredential($post['password']);
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);
if($result->isValid())
{
$userInfo = $authAdapter->getResultRowObject(null, 'password');
$authStorage = $auth->getStorage();
$authStorage->write($userInfo);
if(strlen($post['refferer']) > 1){
header("Location: ".$post['refferer']);
}elseif(strlen($this->_request->getParam('ref_action')) > 1){
Zend_Controller_Action::_forward($this->_request->getParam('ref_action'),"admin",null,null);
}else{
Zend_Controller_Action::_forward("index","admin",null,null);
}
}
Ant to w jaki sposób mogę sprawdzić, czy użytkownik jest zalogowany:
if(Zend_Auth::getInstance()->hasIdentity()){
echo "Woho!";
}else{
die("invalid-identity");
}
Jego prawdopodobnie tuż przed mnie, ale po prostu nie mogę tego rozgryźć, pomóc? Proszę? Pięknie proszę? : D
Także wszelkie jaki sposób można „odświeżyć”, który czas życia w przypadku działania? – Hannes
@Hannes Myślę, że czas wygaśnięcia odświeży się z każdym żądaniem automatycznie, więc po prostu uaktualnienie strony da ci kolejne 300 sekund. – Gordon
btw. tam mała literówka;) '$ namespace = new Zend_Session_Namespace ('Zend_Auth');' I tak masz rację, resetuje się za każdym razem, gdy jest wywoływany, z jakiegokolwiek powodu twoje drugie rozwiązanie nie działało (wstaw to do init()) - ale pierwszy działa po prostu dandy: D Wielkie dzięki! – Hannes