2016-12-12 3 views
0

私はyii2にブラウザを閉じたときにセッションを破棄したいが、そのために私は、ウェブで設定ファイルそのコードを使用する場合、セッションを破壊 - の助けを借りてまた、ユーザー定休ブラウザとセッションテーブルから

'user' => [ 
     'identityClass' => 'app\models\TblUser', 

     'enableAutoLogin' => false, 
     'loginUrl' => ['site/index/login'], 
    ], 

をこのコードはセッションが破棄されましたが、セッションテーブルは更新されませんでした。手動でログアウトすると、セッションテーブルが更新されます。ブラウザを閉じるときに私の手助けをしてください。セッションテーブルも更新してください。

ありがとうございます

+0

'ユーザー' => [ 'identityClass' => 'のアプリ\モデル\ TblUser'、 'enableAutoLogin' => falseを、 'loginUrl' => [ 'サイト/インデックス/ログイン']、 " authTimeout '=> 1800 ]、 – Gulshan

+0

@Gulshanこのコードの助けを借りれば、セッションを破棄することはできますが、データベース内のセッションテーブルを更新することはできません –

答えて

1

これはできません。

ブラウザが閉じられるとすぐに、セッションのCookieを破棄するようにユーザーのブラウザに通知することができます。あるいは、技術的に正しい言葉で言えば、ブラウザはそのCookieを永続的に保存すべきではないと言われています。

しかし、サーバには、ブラウザが閉じられているかどうかを知る方法がありません。

「ガベージコレクション」というメカニズムは、後でデータベースから古いセッションレコードをクリアする必要があります。期限切れのセッションデータが定期的にチェックされ、削除されます。

関連する問題