問題タブ [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.
javascript - セッションで XmlHttpRequest を送信する (再度)
ページがあり、現在のユーザーが何をしているかを追跡したいと考えています。このために、サーバーは彼に ID を与えます。それよりも、XmlHttpRequest を送信して情報をログに記録し、その ID を保持したいと考えています。
ただし、サーバーが空のセッションとして受け取ったリクエスト (リクエストが XmlHttpRequest から開始された場合)。サーバーソリューションについて考えました
私のサーバーはjsで小さなスクリプトを印刷して、jsプログラムがそのIDを認識できるようにすることができましたが、クライアントがIDを自分で変更できるため、私はそれをしたくありません
私のサーバーはjsで小さなスクリプトを印刷して、jsプログラムがそのセッションのIDを認識できるようにし、それをサーバーに送り返して、セッションとIDを取得できるようにすることができます(より良いですが、まだ必要ありません)好きじゃない)
だから私は2つの質問があります:
私が欠けているものはありますか?私の XmlHttpRequest がセッションをサーバーに転送できるようにするのは簡単ですか?
そうでない場合、クライアントにセッションIDを与えることは良い考えですか? もしそうなら、node.jsのIDからセッションを取得するにはどうすればよいですか?
node.js - req.user はクライアントに渡されますか?
プロジェクトで認証を処理するために、node.js、express、express-session、passport.js を使用しています。私の routes.js では、次のように get-requests を処理します。
関数内では、リクエスト パラメータからユーザーを取得できます。私の質問は、ユーザー オブジェクトがどこから来たのかということです。ユーザー オブジェクトはクライアントに渡され、返されますか? クライアントは、データベースにコードを挿入するためにユーザー オブジェクトを変更できますか?
前もって感謝します!
javascript - app.js ノード JS では使用できない 1 つのルート ファイルで定義された高速セッション
node js と express 4 の express-session に問題があります。routes/index.js 内にセッション変数を設定しましたが、app.js では使用できません。しかし、別のルート ファイル users.js で使用できます。
ルート/index.js
ルート/users.js
app.js
誰でも解決策を教えてください。?
node.js - Mongoose - findOne() によるスキーマの検索に失敗しました
の MongoDB 経由で sessionStore を設定する際に、ユーザーの情報が有効で最新のものであることを確認する機能をexpress-session
使用するのに少し問題があります。findOne()
ただし、秘訣は、データベースへの書き込みexpress-session
をconnect-mongo
管理する責任があることです。
ドキュメントが指定したコレクションに入力されるため、これは正常に機能しているように見えます。コレクションからデータを返すと、次の結果が得られます。
問題がデータベース内または Mongoose 経由であると思われる場合、SID のクエリをどのように試行しても問題ないように思われます。次のいずれかを使用しても結果が返されません。
モンゴ経由:
Mongoose 経由 (NodeJS)
問題は、両方のインスタンスで、コレクション内にあることを確認したデータを返すことができないのはどうしてですか? 私がやろうとしていたように、ドキュメントで返されたエスケープされた引用符を考慮する必要がありますか、それとも mongo シェルを介して単に出力されますか?
このデータを正しく検索するために不足している手順はありますか? 新鮮な目のセットをいただければ幸いです。
解決:
vinagretiは、私のコレクションに保存されているデータはオブジェクトではなく、プレーンテキストであると指摘しました。
connect-mongo のドキュメントを参照すると、 には追加のオプションがありますstringify
。この設定は、セッションからデータベースに保存されたデータを文字列化してシリアル化します。express-session
がすでに JSON オブジェクトを生成していることを考慮すると、 を使用stringify()
すると、コレクション内で検索できなくなります。
stringify: false
必要なのは、次のように mongoStore 設定に追加することだけでした。
そして出来上がり!コレクションに保存されたものはすべてオブジェクトになり、検索可能になりました。問題を指摘してくれてありがとうvinagreti !彼の答えに賛成してください!
express - Express セッション シークレット - クライアントからサーバーへ?
Express 4 で express-session を使用しています。クライアントからサーバーにシークレットを渡す方法について混乱しています。リクエストごとにシークレットを渡す必要があると思います。そうしないと、シークレットの目的がよくわかりません。
その秘密をどうすればいいですか?クライアントからサーバーに渡す必要がある場合、それを行う最善の方法は何ですか?
ご覧のとおり、Passport はセッション情報をクライアントからサーバーに渡しますが、req.secret はまだ定義されていません。
node.js - 再発行時の Node Express Session の失効?
ノード v12、Express 4、および connect-pg-simple の使用
セキュリティ評価中に、ユーザーが正常にログインし、再度正常にログインした場合、以前のセッションが有効なままであることが判明しました。
2 回目のログインで最初のセッションを取り消したいと思います。そうしないと、ユーザーは 2 つの異なるブラウザーにログインできることになります。
angularjs - リクエスト間で持続するセッション変数に問題がある
私のアプリケーションは現在ファイル システムから開かれており、クラウド 9 でホストされているサーバーにリクエストを送信しています。同じページから情報を送信するたびに、同じページから 2 つのリクエストを送信します。
1 つの要求は新しいリソースの作成であり、2 つ目の要求はファイルのアップロードです。最初のリクエストの完了時に、認証に使用されるため、2 番目のリクエストを正常に処理するために重要なセッション変数を設定しましたが、2 番目のリクエストを実行すると、変数が存在しません。
クライアントに保存する必要があるセッションIDプレースホルダーは最初のリクエストの後にそこにあるはずなので、それは関連しているように感じますが、そうではありません.Angularが処理している可能性があると疑っています.要求が競合する可能性があります。
セッション ID を取得するために、アプリケーションのスクリプト ファイルをダウンロードし、他のすべてをディスクからロードして、sid を取得します。
私のアプリのURLをpngに保持することは、おそらく最良の決定ではない編集
クライアント側では、これがリクエストを実行する方法です。
サーバー側には、1 つの要求を処理するルートがあり、別のルートが 2 番目の要求を処理します。
別のルートにあります
myname
セッションが持続しなかったことを示唆する未定義です
node.js - エクスプレス セッション MongoDB ストア: connect-mongo と connect-mongodb-session の比較
現在 (10.7.2016) 、express-session の github-pageは、2 つの mongodb セッション ストアを提案しています。
- 接続モンゴ | MongoDB ベースのセッション ストア - Github (775 スター)
- 接続-mongodb-セッション | MongoDB によって構築および維持される軽量の MongoDB ベースのセッション ストア - Github (6 つ星)
どちらを選択する必要があり、2 つの違いは何ですか? 人気では明らかにconnect-mongoが勝っていますが、本当に「より良い」製品なのでしょうか? MongoDB 自体が既存のソリューションを使用してconnect-mongodb-sessionをプログラミングしようとしたのはなぜですか?
アドバイスがありました。
PS: 保存されているさまざまな MongoDB でサポートされているセッションを比較する (古い) SO の質問がいくつかあることに注意しましたが、(私が気付く限り) これらの推奨される 2 つを比較していません。