問題タブ [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 投票する
1 に答える
388 参照

node.js - ストームパスエクスプレスセッションログアウトでセッションが削除されない

Express アプリケーションで、express-session と一緒に stormpath-express を使用しています。ログイン部分は正常に動作します。ただし、ログアウトすると、以前のセッション プロパティがセッションに残っています。セッション プロパティ connect.sid が同じままであることを確認できます

/logout を呼び出したので<button class="btn btn-default btn-default navbar-btn" onclick="$.post('/logout', function(data) {location.href='/'})">、/logout への ajax POST 呼び出しです。

ストームパスのドキュメントによると、セッションは破棄されます。ただし、別のユーザーでログインすると、以前のセッション Cookie がまだ残っています。

ログアウト後、以前のセッション プロパティがまだ存在する

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

javascript - 特定のリクエストでのみユーザー セッションを保存する

ユーザーのセッションを追跡するためにconnect-mongoexpress-sessionを使用しています。セッションを設定する次のコードがあります。

これに関する問題は、サーバーに送信されるすべてのリクエストに対してセッションが作成されることです。たとえば、Amazon Web Services を使用してアプリをホストし、10 秒ごとにサーバーにリクエストを送信して、まだ稼働していることを確認します (ヘルスチェックと呼ばれます)。ヘルス チェック リクエストは、mydomain/health への GET リクエストです。しかし、私が持っているコードを使用すると、リモート Mongo Db のセッション コレクションに保存される新しいセッションが作成されます。そのため、データベースは急速に巨大化します。

背景: 私のアプリでは、ユーザーがファイルをアップロードしてから、各ファイルを操作できます。ユーザーが対話しているCURRENTファイルをセッションで追跡するだけです(私のセッションでは、現在のファイルID、ファイルパス、選択された現在のファイルパラメーターなどを保持します)。したがって、基本的に、すべてではなく、API への特定のリクエストのセッションのみを設定したいと考えています。

だから私は自分のコードを書き直すと思った:

setSession()次に、リクエストエンドポイントが何であるかを確認するためにチェックを行い、リクエストがセッションを必要とするものの1つである場合はセッションを設定することを計画していました。ただし、上記のコードを変更すると、すぐにアプリが壊れます。以下に私が持っています:

今、独自のメソッドからsession()出入りした後、 req.session があり、アプリが壊れます。なぜこれが起こっているのですか?app.useundefined

また、これは、API へのすべてのリクエストでセッションが保存されないようにするための良い方法ですか?

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

mongodb - エクスプレスセッションとコネクトモンゴのセットアップ

私は使用しており、セッションを永続的に保存express-sessionするために使用したいと考えています。connect-mongo私はドキュメントといくつかのチュートリアルを見て、それがどのように機能するかをほとんど理解していますが、最初にmongoDBインスタンスのセットアップが必要だと思うので、connect-mongo接続するものはありますか?

私が見たいくつかの例では、localhost でテスト用の mongoDB に接続していますが、これは mongoDB を標準としてインストールしてからそのインスタンスを使用する場合にすぎませんか?

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

node.js - express-session: 401 応答で詳細を送信する

私はエクスプレスセッションを使用していますが、セッションが見つからなくなったときにエクスプレスが返信する 401 応答で追加の詳細を送信できるかどうか疑問に思っていました。

セッションの有効期限が切れたときとセッションが見つからないときを区別したいので、応答本文で追加の詳細を送信して、クライアントが使用できる情報テキストをユーザーにセッションの有効期限が切れたことを示すことができます。

これは可能ですか?

うまくいけば、私はこの質問で理にかなっています!

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

node.js - express-session: ローリング セッションの有効期限設定

だから私は次のようにmongoストアでexpress-sessionを使用しています:

ログインに成功した後、セッション Cookie の有効期限を設定したいログイン ミドルウェアがいくつかあります。

だから私は現在10秒の有効期限でテストしています

後続のリクエストごとにセッションの有効期限をリセットしたい。現在、ログイン後何度リクエストしても10秒経過するとセッションが切れてしまいます。

ここで何かを誤解したような気がします!

編集

わかりましたので、ドキュメントの構成オプションを見逃しましたrollingが、セッション構成オプションでこれを true に設定しても、同じ動作が発生します。

現在、コンソールでルート全体の Cookie maxAge の値をログに記録しており、ログイン後に後続のリクエストが行われるたびに値が減少していることがわかります。10000 にリセットされることはありません。

私は何を間違っていますか?

解決した

わかりましたので、この問題に関するコメントに出くわしました

resavetrueに変更したところ、期待どおりに動作するようになりました。