我使用Zend_Auth作爲我的項目之一,但到目前爲止還沒有想出如何設置會話的生存期,或如何擴展它(讓我們說它應該運行5分鐘,應該重置,當用戶進行操作),這裏是我的初始化代碼:使用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);
}
}
螞蟻這個我怎麼檢查,如果用戶登錄:
if(Zend_Auth::getInstance()->hasIdentity()){
echo "Woho!";
}else{
die("invalid-identity");
}
它大概正確的,在前面的我,但我無法弄清楚,幫助?請?漂亮嗎? :D
同時,任何我怎麼能「刷新」該在行動的情況下的一生? – Hannes 2010-10-15 08:23:45
@Hannes我認爲到期時間會隨着每個請求自動刷新,所以只需更新頁面就可以再給你300秒。 – Gordon 2010-10-15 08:33:56
btw。 ); $ namespace = new Zend_Session_Namespace('Zend_Auth');'是的,你是對的,它每次被調用時都會重置,無論出於什麼原因你的第二個解決方案不工作(把它放在init()中) - 但第一個工作只是丹迪:D非常感謝! – Hannes 2010-10-15 08:42:17