我的Zend_Auth
函数有问题。
我有一个网络应用程序,当Zend_Auth
会话中的密钥超时时,它会提示用户使用登录框。当用户使用正确的凭据登录时,会话中的密钥将重置回true。但是,当用户输入错误的凭据时,会话中的所有密钥都会被擦除,并且会话不再有效?
我想知道Zend_Auth::getInstance()
功能是否正在擦除它以启动新的?
有什么想法吗?
protected function _process($values)
{
// grab data from config
$iniTime = Zend_Registry::get('config')->inactive->session;
$expireTime = $iniTime->timeout;
$realIP = new Application_Model_RealIP();
// Get our authentication adapter and check credentials
$adapter = $this->_getAuthAdapter();
$adapter->setIdentity($values['email']);
//$pwEncode->encode_password($values['password'])
$adapter->setCredential($values['password']);
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($adapter);
if ($result->isValid()) {
$user = $adapter->getResultRowObject();
$user->session_IP = $realIP->getRealIpAddr();
$auth->getStorage()->write($user);
//check whether the client is authenticated
$session = new Zend_Session_Namespace('new_session');
// Set "dummy" key with expiration
$session->key = true;
$session->setExpirationSeconds( $expireTime, 'key' );
return true;
}
return false;
}
指向调用_process方法链接的auth函数的链接
根据我所能告诉的,您需要 从我读到的内容来看,似乎登录失败并更新了数据库,但随后。。。没有什么没有重定向,没有转发,只有一个设置为500的标头和一条生成的消息。 希望这能有所帮助。我希望我没有完全错过。_forward()
(保留请求)或_redirect()
(new请求