問題タブ [django-sessions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - DjangoのMemcachedでのセッション-Memcachedにアイテムがありません
memcachedを使用してDjangoでセッションを設定していますが、ログインした後、キャッシュにアイテムが表示されません。
memcachedインスタンスに接続でき、プロセスが実行中であるとtelnet localhost 11211
表示されます。stats
私のキャッシュ設定は次のとおりです。
そして、私はデータベースをキャッシュ用に設定しています。セッションはデータベースに表示されます。(backends.cache
何も使用しない場合、データベースまたはキャッシュには表示されません。)
それで、これは予想される動作ですか?登録するには、セッションキーに特別なものを保存する必要がありますか?
python - ユーザーが複数のアカウントで同時に同じ Django サイトにログインできるようにする
さまざまなサイトにインストールされるウィジェットを作成していますが、サイトごとに異なるユーザーが必要です。問題は、閲覧している同じ人が、私のウィジェットを使用する 2 つの異なるサイトを同時に開いている可能性があることです。これは、ユーザーが複数のアカウントで同時に同じ Django サイトにログインする必要があることを意味します。
私の理解では、Django は通常、セッションごとに 1 人のユーザーのみがログインしていると想定しています。
これを行うための最も簡単で効果的な方法は何ですか?
django - クライアント側で古いセッションをチェックする
djangoアプリで、タイムアウトによりセッションが無効になったときに信号が生成されない
セッションのタイムアウト後にクライアントをログイン ページにリダイレクトしたい場合、有効なセッションがまだあるかどうかを定期的にチェックするクライアント側の JavaScript 関数を使用するのは悪い考えですか? 他に方法はありませんが、Web プログラミングはまったくの初心者です。
django - Django のログアウトと非アクティブ後のリダイレクト
SESSION_COOKIE_AGE を設定し、SESSION_SAVE_EVERY_REQUEST を有効にすると、一定時間操作がないとログアウトされます。しかし、非アクティブ状態が 5 分間続いた後にリダイレクトする方法はありますか?
python - Djangoで特定のユーザーのすべてのセッションを削除する最も最適な方法は?
Sessions Middleware と Auth Middleware を使用して、Django 1.3 を実行しています。
ユーザーが別の場所 (別のコンピューター/ブラウザー) からログインするたびに、新しいSession()
が作成され、一意のsession_id
. これにより、同じユーザーに対して複数のデータベース エントリが作成される可能性があります。ログインは、Cookie が削除されるか、セッションが期限切れになるまで、そのノードに保持されます。
ユーザーがパスワードを変更すると、そのユーザーの有効期限が切れていないすべてのセッションを DB から削除したいと考えています。そうすれば、パスワードの変更後、再ログインが強制されます。これは、コンピューターが盗難にあった場合や、誤って公衆端末にログインしたままにした場合などのセキュリティ上の目的のためです。
これを最適化する最良の方法を知りたいです。これが私がやった方法です:
非常に単純化されたビュー:
でわかるようにsessions_helpers.py
、期限切れになっていないすべてのセッションを DB から取り出し、Session.objects.filter(expire_date__gte=datetime.datetime.now())
すべてをデコードしてから、ユーザーと一致するかどうかを確認する必要があります。データベースに 100,000 以上のセッションが保存されている場合、これはデータベースにとって非常にコストがかかります。
これを行うためのよりデータベースに適した方法はありますか? ユーザー名をSessionsテーブルの列として保存できるようにするSessions / Auth Middleware設定はありますか?それに対してSQLを実行できますか?それを行うにはSessionsを変更する必要がありますか? すぐに使用できるのはsession_key
、、、session_data
およびexpire_date
列のみです。
あなたが提供できる洞察や助けに感謝します。:)
django - Django キーベースのセッション有効期限
さまざまな種類のユーザー向けのいくつかのルール セットを含む Web サイトがあります。ルール (許可) の 1 つは、セッションの有効期限に依存します。
たとえば、認証されていないユーザーのセッションは、ブラウザを閉じるときにフラッシュする必要がありますが、認証されたユーザーのセッションは一定時間存続する必要があります。
さらに、認証されたユーザーの場合、セッション内の一部のキーはブラウザーを閉じると削除される場合がありますが、他のキーは保持する必要があります。
Django でこのキーベースのセッション有効期限を達成するにはどうすればよいですか?
python - Django:post_deleteシグナルを使用するときに削除するユーザーを特定する
特定のオブジェクトが削除されたときに管理者に通知する必要がありますが、削除を実行しているユーザーも特定したいと思います。
出来ますか?
これはコードです:
django - Djangoでjsonデータをエンコードする簡単な方法はありますか?
OpenID プロバイダーから次のようなデータを取得します。
このデータを取得するにはどうすればよいですか?
django - View で redirect() を使用すると、セッション ID が変更される
サイト検索に使用するフォームを含むページがあります。フォームは POST 動詞を使用して、検索するデータを送信します。検索結果は、送信後にフォームの下に表示されます。
IE の「ページの有効期限が切れています」という問題を解決するために、いわゆる PRG パターン (http://en.wikipedia.org/wiki/Post/Redirect/Get) を使用します。したがって、同じ URL にリダイレクトするビューの post() メソッドから django.shortcuts.redirect() を返します。
問題は、本番環境では、302 応答の後に送信された GET 要求に関連付けられた異なるセッション ID が表示されることです。結果をページに分割できるようにフォームをセッションに保存するため、一貫性のない結果が得られます。
apache/mod_wsgi で django を実行しています。apache は最大 3 つのプロセスを実行するように構成されています。
httpd を再起動した直後には発生せず、httpd プロセスによって消費されるメモリ量が制限に達した後に発生し始めるようです。
送信ボタンを繰り返し押してこれを確認すると、セッションからフォームが取り込まれ、入力した検索文字列を確認できます。セッションが変更されると、フォームは空白に戻ります。そのため、これが発生し始めると、フォームは 2 回続けて正常に入力され、3 回目に送信を押すと空白が返されます。これは、サーバーが新しいセッション Cookie を返したことを意味します。これは ServerLimit 設定と関係があるようです。
なにが問題ですか?何か案は?
ありがとう
コンスタンチン
django - セッションに QueryDict を保存した後、urlencode() を実行できません
これを django-users グループ ( http://groups.google.com/group/django-users/browse_thread/thread/8572d7f4075cfe0e ) に投稿しようとしましたが、応答がありませんでした。多分ここで私はより多くの助けを得るでしょう。
セッションに保存request.GET
します:
次に、別のページで値を取得し、QueryDict を urlencode しようとします。
私のコンテキストでは、予想される文字列ではなく、Python の QueryDict オブジェクトの文字列表現を取得しkey0=value0&key1=value1&...
ます。
QueryDict の代わりに、urlencode された文字列をセッションに保存すると、もちろんすべてが機能します。
バグですか?