我想更改会话超时。我将超时设置为1秒。
每当我登录系统时,我都可以在一分钟后使用注销服务,而这只是为登录用户而设。
注意:我编写自己的代码进行登录和注销。
这是我的登录和注销服务代码:
public function actionSignin()
{
$model= new Users();
$model->scenario ="signin";
if(isset($_POST['Users']))
{
$model->attributes=$_POST['Users'];
$model->validate();
if($model->hasErrors()){
if($model->hasErrors("username"))
$result=array("status"=>$model->getError("username"));
else if($model->hasErrors("password"))
$result=array("status"=>$model->getError("password"));
}else{
$user = $model->get_user();
$result['user'] = $user;
//// creating session
$session=new CHttpSession;
$session->open();
$session['name']=$user['username'];
$result=array("status"=>ErrorManager::get("OK");
}
}else{
$result=array("status"=>ErrorManager::get("no_data_submitted"));
}
$this->renderPartial("/print_result",array("result"=>$result,));
}
public function actionSignout(){
$session=new CHttpSession;
if(isset($session['name']))
{
$result = array("status"=>ErrorManager::get("OK"));
$session->destroy();
$this->renderPartial("/print_result",array("result"=>$result);
}
}
我的配置文件(main.php)中有会话配置:
'components'=>array(
'session' => array (
'class'=>'CHttpSession',
'cookieMode' => 'allow',
'timeout' => 1
),
请告诉我问题是什么......
答案 0 :(得分:0)
我建议您使用Yii已经完成的存在登录功能来处理它。只需打开文件protected/model/LoginForm.php
即可查看您遗失的内容。看看
public function login()
这就是你错过的
Yii::app()->user->login($this->_identity,$duration); // $duration is what you have to set
如果您仍然希望使用会话来处理您自己的事情,会话超时问题,我认为这不仅仅是Yii问题,应该参考