gpt4 book ai didi

php - 使用 Zend_Auth 设置和延长 session 生命周期

转载 作者:可可西里 更新时间:2023-11-01 12:30:03 25 4
gpt4 key购买 nike

我在我的一个项目中使用 Zend_Auth,但到目前为止还没有弄清楚如何设置 session 的生命周期,或者如何扩展它(假设它应该运行 5 分钟,并且应该在用户使用时重置为做一个 Action ),这是我的初始化代码:

        $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 这是我如何检查用户是否登录:

                if(Zend_Auth::getInstance()->hasIdentity()){
echo "Woho!";
}else{
die("invalid-identity");
}

它可能就在我面前,但我就是想不通,帮忙?请?漂亮吗? :D

最佳答案

身份验证状态存储在已注册的 Auth Storage 中。默认情况下这是 Zend_Session。你可以set an expiration time to the Zend_Auth namespace ,例如

$namespace = new Zend_Session_Namespace('Zend_Auth');
$namespace->setExpirationSeconds(300);

您也可以globally configure Zend_Session通过

Zend_Session::setOptions(array(
'cookie_lifetime' => 300,
'gc_maxlifetime' => 300));

关于php - 使用 Zend_Auth 设置和延长 session 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3940372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com