2013-10-22 18 views
5

セッションの最大有効期間を\Zend\Session\Containerで設定しようとしています。それをテストするために私は1秒にそれを入れます。Zend Framework 2セッションのライフタイム

は今、私はので、私は

しかし、誰成功をしたdocs

を見ました。それから私はグーグルで始め、this answer

を見つけたので、私は、だから私は探し続け、this answerを見つけ

return array(
    'session' => array(
     'remember_me_seconds' => 2419200, 
     'use_cookies' => true, 
     'cookie_httponly' => true, 
    ), 
); 

(コンフィグが働き、マネージャーにロードされた)が、再びノー成功

に設定を行いました

しかし、再び成功はありません。

すべての検索の後、私はそれを働かせることができませんでした。だから、他の人が働いて、助けてくれることを願っています。

答えて

6

まあ私は最終的に問題が何かを知った。

問題

が、私はこれが「働いていた」

$sessionConfig = new SessionConfig(); 
$sessionConfig->setOptions(array(
    'use_cookies' => true, 
    'cookie_httponly' => true, 
    'gc_maxlifetime' => $config['authTimeout'], 
)); 
$manager = new SessionManager($sessionConfig); 

を使用したことだった唯一の問題は、生涯sessionでクッキーが設定されたということでした。これは、ブラウザのさまざまなことを意味します。それはあなたがタブを閉じると、それが破壊されているので、クロムの中では、それがどれほど高いかにかかわらず、それはうまくいかないでしょう。

そう簡単に修正は以下の

$sessionConfig = new SessionConfig(); 
$sessionConfig->setOptions(array(
    'use_cookies' => true, 
    'cookie_httponly' => true, 
    'gc_maxlifetime' => $config['authTimeout'], 
    'cookie_lifetime' => $config['authTimeout'], 
)); 
$manager = new SessionManager($sessionConfig); 

は私がこれを設定する必要があると思う、それはfutue

$config['authTimeout']におけるいくつかのいずれかが正の整数値

0
$config = new StandardConfig(); 
$config->setOptions(array(
    'cookie_lifetime' => '2419200', 
    'gc_maxlifetime' => '2419200' 
)); 

2419200の値を実際に必要な秒数に変更します。

+2

で役立つだろうホープだろうconfigをマネージャに、マネージャをコンテナにそれぞれ設定します。もしそうなら、それは私のために働いていません。また、StandardConfigをSessionConfigに変更しようとしました。 – MKroeders

0
アプリケーションglobal.phpで

か、モジュールの設定でそれを行うことができます。

'session_config' => array(
    'name' => 'your session name', 
    'remember_me_seconds' => 60 * 60 * 24 * 30*3, 
    'use_cookies' => true, 
    'cookie_httponly' => true, 
), 

のZend \セッション\サービス\ SessionConfigをご確認ください。

+0

この設定は手動で行う必要があります。こちらをご覧ください:https://stackoverflow.com/questions/12774809/how-to-bootstrap-sessions-in-zend-framework-2 – nepda

関連する問題