問題タブ [connect-mongo]

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 投票する
3 に答える
2577 参照

node.js - connect-mongo が毎秒新しいセッションを作成する

私は自分の nodejs アプリを Openshift でホストしています。ここに私の仕様があります:

ノード v0.10.35、エクスプレス v3.4.8

私のpackage.jsonの依存関係:

そして、ここに私のserver.jsがあります

問題は、データベースのセッション コレクションのエントリ数を数えることからわかるように、connect-mongo が毎秒新しいセッションを作成していることです。現在 Web サイトを使用しているアクティブなユーザーがいない場合でも、セッションが作成されています。これは正常ですか?

編集:ほとんどのAPI呼び出しで、ユーザーがpassport isauthenticatedメソッドを使用してログインしているかどうかを確認するために使用するミドルウェアが原因ですか。しかし、奇妙なことは、リダイレクトを続ける以下のnode.logからわかるように、サーバーにリクエストを行っているユーザーがいない場合でも呼び出されることです

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

node.js - set-cookie フィールドは存在しますが、ブラウザの [リソース/アプリケーション] タブに設定されていません

応答ヘッダーに Cookie が設定されていますが、ブラウザーに Cookie が保存されていません。フロント/バックエンド コンポーネントは、それぞれ localhost:8080/8082 で実行されます。

nodev5+、expressv4+を使用し、両方を試しましたconnect-mongo/connect-redis

Chrome v. 52.0.2743.82

Chrome はかなり前から Cookie でうまく動作するはずですが、ファイルに のようなdomain=localhostPTR を作成しようとしましたが、違いはありません。/etc/hosts127.0.0.1 local.com

応答に表示される一連のヘッダー フィールドを次に示します。

ここに画像の説明を入力

httpOnlyフラグを無効にしようとしましたが、それでも同じです。

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

node.js - 終了したセッションは破棄されていません

私のアプリケーションは、connect-mongoexpress-sessionkeystone、およびパスポート処理のログインとユーザー セッションを使用しています。

ただし、セッションが終了すると (ユーザーがログアウトするか、ブラウザ ウィンドウを閉じると)、セッションは MongoDB セッション ストアから削除されません。

ミドルウェアのセットアップは次のとおりです。

MongoDB のセッションのコレクション名はapp_sessionsです。依存関係ツリーを検索すると、これが Keystone CMS によって処理されていることがわかります。

また、Cookie 名はkeystone.sidです。

これは私のキーストーン設定です:

最後に、MongoDB のセッション オブジェクトの例をいくつか示します。

セッションが破棄されない理由がわかりますか?

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

node.js - Node.js Web アプリは、ブラウザーを再度開くたびに新しいセッションを確立します

すべてのブラウザー ウィンドウを閉じてから Web アプリを再度開くたびに、新しいセッションが確立されます。つまり、再度認証する必要があります。

参考までに、私express@4.14.0は Web アプリケーション フレームワークとしてexpress-session@1.14.1+connect-mongo@1.3.2セッションを保存するためのミドルウェアとpassport@0.3.2認証のために使用します。

以下は、Cookie とセッション構成のコードです。

MongoDB に保存されている「古い」セッションの有効期限は、まだ 2 週間あります。

Node.js アプリケーションはブラウザーから「古い」セッションを認識できないようです。そのため、「新しい」セッションを作成し、ブラウザーに「新しい」セッションを使用するように指示します。

時々発生するわけではありませんが、常に発生するため、Web アプリケーションに問題があると思います。

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

express-session - Nodejs/Express セッション - エラー: 送信後にヘッダーを設定できません

シンプルな nodejs サンプル アプリでエクスプレス セッションを使用しようとすると、以下のエラーが発生します。

「resave」を true に設定すると以下のエラーが表示されますが、false に設定するとエラーは発生しません。

GET / 304 13.380 ミリ秒 - - エラー: 送信後にヘッダーを設定できません。ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:344:11) で ServerResponse.header (/Volumes/SURESH/GSKLabs/NodeApp/node_modules/express/lib/response.js:718:10) で ServerResponse.contentType (/Volumes) /SURESH/GSKLabs/NodeApp/node_modules/express/lib/response.js:551:15) で ServerResponse.send (/Volumes/SURESH/GSKLabs/NodeApp/node_modules/express/lib/response.js:138:14) で完了 (/Volumes/SURESH/GSKLabs/NodeApp/node_modules/express/lib/response.js:957:10)

以下はapp.jsのコードです

ルート/index.js

パッケージ.json

私の理解によると、resave:true 以来、応答が既に送信された後に Cookie を設定しようとする高速セッション。高速セッションでローリング オプションを使用するには「true」である必要があるため、resave:false に変更することはできません。

上記のサンプル コードでこのエラーを解決する方法を教えてください。ありがとう。

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

node.js - Connect-mongo 構文エラー: 予期しないトークン =>

こんにちは、次のエラーがあります

私はこれらのバージョンを持っています:

node@v3.3.1

express@4.14.0

マングース@4.6.5

mongodb@2.2.11

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

amazon-web-services - Express Session と Amazon Beanstalk とヘルスチェック

Express セッション、connect-mongo、および Amazon Beanstalk に問題があります。

Amazon Beanstalk がヘルスをチェックするたびに、API にリクエストを実行しますが、mongodb データベースに新しいドキュメントを作成します。したがって、Amazon は短時間で、サービスを提供しないセッションで 200.000 の新しいドキュメントを作成します。

その要求を無視できる方法はありますか?

ありがとう。