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