• 締切済み

Perlでのセッション管理と不要セッション削除について

いつもお世話になっています。 Perlにてセッション管理(ログインして、サイト内はユーザーIDなどを持ちまわるような)を行おうとしています。 CGI::Sessionを使用して実現できると思っているのですが、 疑問があります。 セッション情報の持ち方は、サーバー内にファイルか、DBに格納する ことになると思いますが、不要になったファイルやレコードは、 みなさんどうされているのでしょうか? (ログアウトボタンがあっても、ブラウザの閉じるボタンを押される ケースが多いと思いますので、必ずdelete()はできないですよね?) 削除バッチなどで定期的に削除することを考えていますが、 もっとスマートなやり方があればご教示いただければと思います。 よろしくおねがいします。

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

 バッチ(クロン)を使わず、期間限定のCookie(30分とか)を発行すると同時にデータベースを更新し、CGIが(誰からにこだわらず)起動されるたびに、データベース中の古いデータ(30分以上経過したもの)は削除してます。  クライアントA側cookieをa,サーバー側のAのデータをAとすると Aの認証  aの発行    Aの作成 Bの認証  bの発行    Bの作成と同時にAのチェック Aの利用  aの更新    Aの更新,Bのチェック Aの利用  aの更新    Aの更新,Bのチェック Aのlogout aの削除    Aの削除,Bのチェック B・・不明 Cの認証 cの発行    Cの作成,Bのチェック→削除  削除時に最終利用時間はIPアドレスやブラウザとともに一年程度データとして残しておく--利用トラブル発生時の対処のため。