2013-08-22 1 views
1

Я хочу изменить таймаут для сеансов. Я установил тайм-аут 1 секунду.Yii сеанс тайм-аута в webservice

всякий раз, когда я вхожу в систему, я могу использовать службу выписки через минуту, пока она только для зарегистрированных пользователей.

Примечание: Я пишу свой собственный код для входа и выхода.

вот мой код и SignOut зарегистрировались службы:

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

Что ваша точка? Вы пытались установить таймаут через 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 проблема, следует обратиться к

How do I expire a PHP session after 30 minutes?

+2

«Длительность», которую вы установили здесь, никак не связана с таймаутом сеанса. Это время жизни cookie «Remember Me». –

+0

это может мне помочь, каким-то другим способом , но есть ли способ управления таймаутом сеанса тоже? –

Смежные вопросы