4

私は Django アプリケーションを使用しており、現在の目標は Cookie を使用してユーザー セッションを追跡することです。いつものように、これを行う方法に関して、私の理解が少しずれているように感じます。

手始めに、ユーザーがログインしてからの経過時間を管理したいと思います。これにより、ユーザーが「x」時間新しいページにアクセスしていない場合に正常にログアウトできます。(ソーシャルネットワークの)標準が正確に何であるかはわかりません。

この情報はサーバーに保存されますか? Cookie は実際に関連性がありますか? ユーザーのタイムゾーンなどを保存するために以前に Cookie を使用したことがありますが、ユーザーを追跡する方法に対処するのに苦労しています。

現在、ユーザーのバックエンドに関して私が持っているのは、django.contrib.authパッケージのものだけです。

ユーザーの情報を「取得」する方法に関して私が本当に知っている唯一のことは、if request.user.is_authenticated():(など) のようなステートメントを使用することです。

これはやや複雑な質問であることを認識しているので、絞り込んでみます。

現在のユーザーに関する既存の情報を拡張して「最後のアクティビティ」を取得し、一定期間サイトを使用していない場合にそのユーザーをログアウトできるようにするにはどうすればよいですか? カスタム ユーザー モデルを定義する必要がありますか?

次のステップは、異なるタイプのユーザーを作成することです。そのため、通常のユーザー フォームを拡張してプロファイルなどを作成するだけでなく、カスタム ユーザー モデルを作成する必要があると感じています。

わかってくれてありがとう、

物事を理解していないと、混乱することがあります。

御時間ありがとうございます、

ジェームズ

4

1 に答える 1

7

ユーザーを自動的にログアウトするようにセッション ミドルウェアを構成し、SESSION_COOKIE_AGE低い値に構成し、 をSESSION_SAVE_EVERY_REQUESTとして提供できますTrue

これにより、プロファイルを拡張する必要なく、特定の非アクティブ後にユーザーが自動的にログアウトされます。

 SESSION_COOKIE_AGE
 Default: 1209600 (2 weeks, in seconds)
 >> The age of session cookies, in seconds.

 SESSION_SAVE_EVERY_REQUEST
 Default: False
 >> Whether to save the session data on every request. 
 If this is False (default), then the session data will only be saved if it has been modified – that is, if any of its dictionary values have been assigned or deleted.

また、カスタム/拡張Userプロファイルを作成するために、Django 1.5には構成可能なユーザー モデルが付属しています。例についてはドキュメントを確認してください。

于 2013-07-23T07:24:43.993 に答える