2011-07-20 15 views
4

私は、さまざまな種類のユーザーに対していくつかのルールセットを含むWebサイトを持っています。 ルール(パーミッション)の1つは、セッションの有効期限によって異なります。Djangoキーベースのセッションの有効期限

たとえば、ブラウザを閉じたときに認証されていないユーザーのセッションをフラッシュする必要があります。ただし、認証されたユーザーのセッションは一定の期間存続する必要があります。

さらに、認証されたユーザーの場合、セッション中のいくつかのキーは、ブラウザーを閉じても他のキーを有効にしておく必要があります。

Djangoでこのキーベースのセッションの有効期限を達成するにはどうすればよいですか?

+0

私はドキュメントを見ました。一定の時間が経過した後、またはブラウザが閉じると、特定のセッションが期限切れになるのは簡単ですが、キーごとに行う方法はわかりません。うまくいけば、他の人があなたに答えを与えることができますが、あなたはキーごとの有効期限を持つ 'SessionBase'の独自の実装を作らなければならないかもしれません。 – Gareth

答えて

0

request.sessionset_expiryメソッドを使用してこれを行うことができます。このメソッドは、セッションが期限切れになるまでの秒数を表す整数、セッションが期限切れになる場合はまたはtimedelta、ブラウザの終了時にセッションが期限切れになることを示す整数の場合は0、セッションがフォールバックする必要がある場合はNoneデフォルトのタイムアウトポリシーに変更します。

セッションの有効期限の基準を評価するミドルウェアを作成し、要求を処理する前にセッションでset_expiryを呼び出すことができます。

関連する問題