J'utilise Zend_Auth pour un de mes projets, mais jusqu'à présent, je n'ai pas compris comment définir la durée de vie de la session, ou comment l'étendre (disons qu'elle doit durer 5 minutes et doit remettre à ce que lorsque l'utilisateur effectue une action), voici mon code d'initialisation:définir et étendre la durée de vie de session en utilisant 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 ce que je vérifie si l'utilisateur est connecté:
if(Zend_Auth::getInstance()->hasIdentity()){
echo "Woho!";
}else{
die("invalid-identity");
}
Son probablement juste devant de moi mais je ne peux pas le comprendre, aider? S'il vous plaît? Jolie s'il-vous-plaît? : D
également tout comment je peux "rafraîchir" que vie dans le cas d'une action? – Hannes
@Hannes Je pense que l'heure d'expiration se rafraîchira automatiquement à chaque requête, donc la simple mise à jour de la page vous donnera 300 secondes de plus. – Gordon
btw. petite typo là;) '$ namespace = nouveau Zend_Session_Namespace ('Zend_Auth');' Et oui vous avez raison, il se réinitialise à chaque appel, pour une raison quelconque votre seconde solution ne fonctionne pas (mettez-la dans le init()) - mais le premier fonctionne juste dandy: D Merci beaucoup! – Hannes