2

一定期間非アクティブになった後、ユーザーをログアウトしたいと考えています。この質問 ( Logging users out of Django site after N minutes of inactive ) には妥当な答えがあります。

しかし、request.session.set_expiry と SESSION_COOKIE_AGE の違いを理解したいと思います。前者は、アクティビティに関係なく、一定期間後にユーザーをログアウトするようです。これは、SESSION_SAVE_EVERY_REQUEST が False の場合に SESSION_COOKIE_AGE が行うことでもありませんか?

4

1 に答える 1

2

私が知る限り、その特定のセッションrequest.session.set_expiryの設定をオーバーライドするだけです。SESSION_COOKIE_AGE(デフォルト)ではSESSION_SAVE_EVERY_REQUEST = False、機能上の違いはありません。

どちらの場合も、セッション アクティビティは、セッションが最後に変更された時点に基づいています (ただしSESSION_SAVE_EVERY_REQUESTTrueすべてのリクエストで保存されるため、すべてのリクエストで効果的に変更されます)。

1 つの例として、アプリケーションの特定のセクションにいるユーザーのセッション有効期限を長くしたい場合があります。そのためrequest.session.set_expiry、そのアプリケーションに関連するビューでカスタム値を使用し、ユーザーrequest.session.set_expiry(SESSION_COOKIE_AGE)がその特定のセクションを離れたときにそれをリセットできます。

于 2011-01-05T22:33:32.857 に答える