0

Catalyst アプリ (Catalyst::Plugin::Session) のセッション プラグインの有効期限が切れるように構成すると、フラッシュ データが失われることがわかりました。具体的には、フラッシュ データが新しいリクエストで引き継がれなくなっていることがわかりました。

これは正常に聞こえますか?どうすればこれに対処できますか?

4

2 に答える 2

5

完全に正常です。セッションの要点は、あるリクエストのデータを別のリクエストのデータに関連付けることができることです。あるリクエストのセッションを期限切れにすると、そのリクエストのデータは将来のリクエストとは何の関係もないはずだと言っていることになります。

具体的には、フラッシュ データはセッション データの一部です。たとえば_save_flash、ファイル内のメソッドを参照してください。メソッドの大きな警告Catalyst/Plugin/Session.pmも参照してください。delete_session

注: この方法では、フラッシュ データも削除されます。

それに対処する方法は?セッション プラグイン以外のスキームを使用して、リクエストからのデータを永続化する必要があります。アプリ、保持しようとしているデータ、および古いセッションのデータを新しいリクエストに関連付ける方法について詳しく知らなければ、それ以上の具体的な推奨事項を作成することはできません.

于 2012-04-16T22:16:44.543 に答える
2

たとえば、データベース バックエンドを使用してセッションを構成する場合はflash_to_stash、オプションとして追加する必要があります。

<session>
  dbi_dbh            DB
  dbi_table          sessions
  dbi_id_field       id
  dbi_data_field     session_data
  dbi_expires_field  expires
  flash_to_stash     1
  expires            3600
</session>
于 2012-04-16T22:17:18.183 に答える