問題タブ [cookie-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.
node.js - ブラウザに登録していないエクスプレスでクッキーセッションを更新する
次のように、機能するログインテストを設定しました。
ルートとユーザー ロジックは、私の問題とは無関係だと思うので省略しますが、必要に応じて喜んで共有します (非常に小さいため、概念の小さな証明を実行するためだけです)。 .
ログインが機能し、セッションが機能し、セッション値に基づいてテンプレートがレンダリングされます。 私の問題は maxAge/expires にあります。問題がどこにあるのかわかりませんが、説明してみます。
ログインすると、セッションが で保存passport.js
され、正しく保存さRedisStore
れ、セッションを指す Cookie がブラウザに返されます。後続のリクエストでは、Cookie が正常に検出され、 my からの正しいセッションを指していますSessionStore
。req.session.cookie
UPDATEDexpires
を表示し、私のredis
サーバーでは、TTL が 10 分 (600) にリセットされます。
私の問題は、Cookie がブラウザー (Chrome、Windows、および Mac) で同じ有効期限にとどまることです。
だから私の質問は:どうすればこれをさらにデバッグできますか? req.session が (によってexpress
、passport
およびconnect-redis
内部的に/自動的に) 更新されるので、問題がどこにあるのか、これを修正するにはどうすればよいのか疑問に思っています: Cookie は最初の maxAges/expires のままです。
ヒント、ポインタ、またはアイデアをいただければ幸いです。
node.js - Express.js で connect-redis を使用できない
私は Express.js を勉強していて、cookie-session モジュールを使用してセッションを処理する方法を学びました。Express-Session を使用しようとしていますが、問題があります。
以前は、express-session の代わりに cookie-session を使用していましたが、memoryStore は完全に機能していました。ただし、connect-redis は cookie-session で使用できませんでした。そのため、express-session をインストールしましたが、それではストアも memoryStore も Redis も使用できません。
Redis DB は redistogo にあり、その URI は次のようになります: (セキュリティのためにマスクされていますが、これは練習のためだけです) ****f4bb@albacore.redistogo.com:10072/
ただし、「node app」を実行すると、エラーが出力されます。
私のpackage.json:
「npm ls」は次を示します。
私のapp.js:
「node app」の実行時に表示されたエラー:
どのセッション モジュールを使用すればよいですか? そして、どうすればRedisでセットアップできますか?
javascript - Express.js で Cookie セッションを共有する
2 つの Express.js アプリで同じセッション Cookie を共有しようとしています。両方のアプリ構成で同じシークレットと同じキー ID を設定しています。次に、それらを同じドメイン (異なるポート) で実行します。
両方のアプリの app.js には次のものがあります。
理論的には、セッション Cookie に対して同じ値を共有する必要があります。私が見ているのは、アプリを切り替えるとすぐに、Cookie「express.sid」の値が変化することです。
何か不足していますか?
javascript - IE11キャッシングexpress.jsクッキーセッションを克服するには?
ログに記録されたユーザー セッションを保存するために、express.js cookie-sessionを使用しています。新しいユーザーにサインインするたびに、現在のセッションに userId を配置し、この userId を DB で作成した user._id に割り当てます。
最終的に、新しいユーザーがログイン フォームを送信すると、ユーザー データを含む get リクエストが /user restful サービスに送信され、そのデータ (識別子) が DB に保存されていない場合、新しいユーザーが DB に登録されます。そして、彼のために新しいセッション Cookie が作成されます。
上記の機能を chrome、firefox、IE11 でテストしました。chrome/firefox を使用している場合、ログイン後の応答コードは 200 で、送信されたユーザーは UI によって挨拶されます。ただし、IE11 を使用する場合、最初に送信されたユーザーは UI によって挨拶されますが、別のユーザーが送信されたときは挨拶されません。どうやら IE11 は、dev でフラグをオンにしない限り、最初にログインしたセッション Cookie (応答コード 304) をキャッシュします。コンソールですがalways refresh from server
、これはブラウザのデフォルトのオプションではありません。
node.js - ノード Expresss.js の cookie-session の使用方法
モジュールを のように変更しない限り、express-session は本番環境で動作する準備ができていないため、cookie-sessionredisStorage
を使用することにしました。
ドキュメントは私にはあまり明確ではないようです。それは言う
その他のオプションは cookies.get() と cookies.set() に渡されます
- 何が
cookies
ありますか? - 必要なオプションを設定するために を使用する必要があるという
set
ことですか?
私は cookieSession をexpress-sessionとして使用しようとしていましたが、それはうまくいかないようです:
node.js - Node.jsのcookie-sessionがセッションを設定していません
これは私に大きな頭痛の種を与えています.CSRF Cookieは正しく機能していますが、何かが壊れているようで、セッションを開始できません. どんな助けでも大歓迎です。
編集: 言及するのを忘れていましたが、Nginx からのすべてのリクエストを HTTPS で受け入れるノード サーバーに転送するリバース プロキシ サーバーとして Nginx を使用しています。