機能に問題がありZend_Auth
ます。
Zend_Auth
セッションのキーがタイムアウトしたときに、ユーザーにログイン ボックスを表示する Web アプリがあります。ユーザーが正しい認証情報でログインすると、セッションのキーは 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 メソッドを呼び出す認証関数へのリンク リンク