Я использую Zend_Auth для purposes.Code аутентификации для того же выглядит следующим образом:Как установить тайм-аут при использовании Zend_Auth в рамках Zend
$authAdapter = $this->getAuthAdapter();
$authAdapter->setIdentity($username)
->setCredential($password);
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);
# is the user a valid one?
if ($result->isValid()) {
# all info about this user from the login table
# ommit only the password, we don't need that
$userInfo = $authAdapter->getResultRowObject(null, 'password');
# the default storage is a session with namespace Zend_Auth
$authStorage = $auth->getStorage();
$authStorage->write($userInfo);
$emp_id = $userInfo->employee_id;
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
$array_db = new Application_Model_SetMstDb();
$array_name = $array_db->getName($emp_id);
foreach ($array_name as $name) :
$fname = $name['first_name'];
$lname = $name['last_name'];
endforeach;
$firstname = new stdClass;
$lastname = new stdClass;
$userInfo->firstname = $fname;
$userInfo->lastname = $lname;
$privilege_id = $userInfo->privilege_id;
echo 'privilege in Login: ' . $privilege_id;
$this->_redirect('index/index');
} else {
$errorMessage = "Invalid username or password";
$this->view->error = $errorMessage;
}
где getAuthAdapter() следующим образом:
protected function getAuthAdapter() {
$dbAdapter = Zend_Db_Table::getDefaultAdapter();
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTableName('credentials')
->setIdentityColumn('employee_id')
->setCredentialColumn('password');
return $authAdapter;
}
Я хочу установить тайм-аут сеанса. Я хочу установить тайм-аут 5 минут и когда пользователь не будет активен в течение 5 минут, тогда должен быть истек срок действия, который должен вызывать действие выхода из системы, код которого выглядит следующим образом:
public function logoutAction() {
// action body
Zend_Auth::getInstance()->clearIdentity();
$this->_redirect('login/index');
}
Заранее спасибо.Plz Помогите мне. Это срочно.
Когда я использую
$session = new Zend_Session_Namespace('Zend_Auth');
$session->setExpirationSeconds(60);
управления перенаправляет на страницу входа в систему автоматически через 60 секунд, но я хочу, что если пользователь приложения в неактивны в течение 60 секунд, а затем только он redirects.At присутствует ли активный пользователь или не происходит перенаправление.
здесь: http://stackoverflow.com/questions/5146217/get-session-expiration-time-in-zend-framework – bmartins
Если я буду использовать $ session = новое Zend_Session_Namespace ('Zend_Auth'); $ session-> setExpirationSeconds (60); то как проверить, что 60 секунд завершено, и где он должен быть проверен, как это должно быть проверено в методе init() для каждого контроллера. – ryan
Пожалуйста, дайте фрагмент кода – ryan