問題タブ [express-session]

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.

0 投票する
2 に答える
9467 参照

javascript - Express セッションは Express 4.13 で動作しませんか?

したがって、私が知る限り、express-sessionのドキュメントに従ってセッションを設定しました。しかし、私のクッキーは作成されていません! ドキュメントによると、request.session の値を設定するだけで、Cookie が自動的に設定されます。ブードゥーがこれを可能にしているのかはわかりませんが、魔法が壊れているようです. ここで与えられた例に対して確認したことを確認してください。私が間違っている?これらにはいくつかの重要な情報がありませんか?

それで、私は何か間違ったことをしているのだろうか、それとも最新のものにバグがあるのでしょうか? データベースを確認すると、セッション テーブルの行に正しいセッション変数が表示されます。

クライアント側の Cookie が設定されないのはなぜですか? リソースのデバッグ パネルには表示されません。そのため、最新の 4.13.3 バージョンが Express-Session 1.11.3 と連携して動作することにバグがあるかどうか疑問に思っています。これは8月27日現在の最新のものです。

0 投票する
1 に答える
3191 参照

node.js - リクエストごとに異なるセッションIDを作成するノードjs

高速セッションを使用し、セッションをファイルに保存します。ただし、新しいセッションIDと新しいファイルを作成しているすべてのリクエストが作成されています。

セッションを作成するために使用しているコードは次のとおりです。

ただし、ユーザーごとに、またはセッションの有効期限が切れるまで、単一のセッション ID を作成する必要があります。

0 投票する
1 に答える
1687 参照

node.js - 非アクティブ期間後に mongodb ドキュメントを自動的に削除する

指定された期間アクセスされなかった後、mongodb ドキュメントを削除する必要があります。

外部ソースからデータを取得してデータベースに保存するために使用するアクセス トークンがあります。

私のセッションでは、ユーザーがリクエストを行ったときにアクセストークンを取得するために使用できるユーザーIDを保存します。

セッションが期限切れになると、データベースに保存されたアクセス トークンは二度と使用されなくなります。

ユーザーは再認証を求められ、新しいアクセス トークンがデータベースに保存されます。

ユーザーが明示的にログアウトすると、無効になったアクセス トークンをデータベースから簡単に削除できます。ただし、ログアウトせずにセッションが期限切れになると、データベース エントリは無期限に残ります。

セッションの有効期限を検出し、関連するアクセス トークンをデータベースから削除する関数を実行することを考えましたが、アプリが実行されていないときにセッションが期限切れになった場合はどうなりますか。

特定の期間アクセスされなかった後にドキュメントを削除するデータベース上のcronジョブや何かのようなメンテナンスが必要だと思います。

mongoDB でこれを行うにはどうすればよいですか?

0 投票する
2 に答える
65 参照

javascript - node.js - session-express でセッションを保存する方法がわかりません

私はnode.jsとセッションに不慣れで、node.jsセッションにいくつかの値を保存しようとしていますが、ページをリロードしてconsole.logを確認するたびにセッションが保存されていません。私のコード:

つまり、基本的に私が望むのは、ユーザーが初めてページをロードしたときに組織を入力できることです。そのとき、この組織はセッションに保存されるため、ページをリロードすると、組織はすでに選択されています.

私は本当に間違ったことや悪いコーディングをしているに違いないことを知っていますが、これを理解することはできません.

ありがとうございました!

0 投票する
2 に答える
3750 参照

node.js - Express JS - Cookie の有効期限をリセットする

Express-session を使用してセッションを管理しています。私はこれを使用しています:

ここで、URL がヒットするたびに有効期限の値を 6 にリセットしたいと考えています。だから私はこれを行います:

ただし、最大経過時間はリセットされず、URL がヒットした場合でも、セッションは常に 6 秒で期限切れになります。これを毎回6000に変更するにはどうすればよいですか?

事前に助けてくれてありがとう

0 投票する
0 に答える
1242 参照

javascript - node.jsでexpress-sessionを使用して特定のセッションをロードする方法は?

別のドメインから接続できる Websocket を作成する必要があります (Websocket は 10.0.4.18:8020 で実行され、クライアントは 10.0.4.160:443 から接続を確立します)。

認証後にユーザー データを再利用するには、各ユーザーに固有のセッションが必要です。

クライアント「別名ユーザーのブラウザー」は別のホスト上にあるため、ページのリロードイベントでセッションを作成するクライアントとセッションを結び付けるのに苦労しています!

この問題を解決するためにこの回避策を考えました

  1. クライアントからの関数を使用してセッションを作成し、セッションXMLHttpRequest()ID をクライアントに返します
  2. を使用してユーザーのブラウザーに sessionId を保存します。localStorage
  3. ユーザーが WebSocket に接続するたびに、sessionId を socket.io に渡します。
  4. 次に、Websocket は sessionId を受け取り、それをリロードして、もう一度使用できるようにします。

セッション固定攻撃を排除するために、さらにいくつかの検証手順を追加して、クライアントの IP とエージェント データを使用して sessionId がハイジャックされていないことを確認します。

さらに、setInterval()毎秒外部 API 呼び出しを行い、セッション変数を更新するメソッドを起動する必要があります。

質問

store.get() を直接使用してセッション データを読み込んで保存することなく、変数を自動保存できるセッション データを適切にリロードするにはどうすればよいですか?

これが私がやったことです

ファイルシステムを使用してセッションを作成しました。リクエストごとに、store.get()メソッドを使用してセッション ストアをロードし、セッション データを更新してから保存する必要があります。しかし、私が抱えている問題は、以下のコードを見ることができるように、毎回セッションを更新したいということです。

これが私がやったことです!