[解決済み] nodejs のセッションクッキーを表現する: req.cookies['connect.sid'] が生成されず、リフレッシュのたびに req.sessionID が異なる。
質問
express 4.13.3、express-session 1.11.3を使用しています。私の設定セッションはこちらです。
app.use( session({/*store: new redis_store,*/name: 'connect.sid', secret: 'azerty is qwerty', resave: false, saveUninitialized: false, cookie:{httpOnly: false, secure: false, maxAge: null}}) );
ここでは、次のように印刷します。
req.cookies['connect.sid']
と
req.sessionID
:
app.get("/", function (req, res) {
console.log(req.sessionID);
console.log(req.cookies['connect.sid']);
res.sendStatus(200);
});
更新の都度
req.sessionID
は
異なる
と
req.cookies['connect.sid']
は
未定義
. 何ヶ月か前に、as
req.sessionID
が更新時に変化していたので、私は
req.cookies['connect.sid']
で、それは魅力的なように動作していました。今日、私のコードをチェックしたところ、以下のことに気づきました。
connect.sid
はもうクッキーの中に存在しない。
では、何が問題なのでしょうか?クッキーのセッションIDを使用するにはどうすればよいのでしょうか?
解決方法は?
req.session.id
と同じです。
req.sessionID
と
req.session.cookie
はセッション設定オブジェクトです。
いくつかのテストの後、私は、もしあなたが
req.cookies['connect.sid']
を使用する必要があります。
使用
はセッションを手動で変更します。例えば、次のように書きます。
req.session.i = 1
などを使用します。そうすると、id
connect.sid
がナビゲータに表示されるようになります (例えば Chrome Dev Tools を使用します)。さらに、もしあなたがその
req.sessionID
は同じままにしておく必要があります。
res.sendStatus(200)
または他のレスポンスが関数の最後にあります。
しかし、1つ問題が残ります。このコードを見てください。
app.post("/upload-files", upload.array('files'), function (req, res, next) {
if(!req.session.i) req.session.i = 0;
++req.session.i;
console.log("i: " + req.session.i);
}
ここでは
post
を使ってファイルの配列をリクエストします。
multer
. として
multer
は、"files[]" という形式の名前では動作しません (
multer-not-accepting-files-in-array-format-gives-unexpected-filed-error-used(マルチターノットアセプティングファイルインアレイフォーマット、予期せぬファイルエラー)。
) のため、ファイルを1つずつ送信せざるを得ません。ここで問題が発生しました。
i
は持続せず、1に等しいままです。
何らかのバグがあるのだと思います。
関連
-
[解決済み】AWS STS AssumeRoleへのアクセスを可能にする方法
-
[解決済み] テスト
-
[解決済み] (node:63208) DeprecationWarning: collection.ensureIndex は非推奨です。代わりにcreateIndexesを使用してください [重複]。
-
[解決済み】 console.logの出力をどこに永久保存するか?
-
[解決済み】Express.js req.bodyが未定義です。
-
[解決済み] nvm は npm config の "prefix" オプションと互換性がありません。
-
[解決済み] node.js - リクエスト - "emitter.setMaxListeners() "はどのように?
-
[解決済み] "app.use(express.cookieSession())" に "secret" オプションが必要です。
-
[解決済み] "致命的なエラーです。grunt "コマンドを実行すると、"Unable to find local grunt. "と表示されます。
-
[解決済み] localStorage、sessionStorage、session、cookieの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エラー: nodejs の get 呼び出しで getaddrinfo ENOTFOUND が発生しました。
-
[解決済み】AWS Lambdaでnodejsの「ref」モジュールを使用すると「invalid ELF header」と表示される件
-
[解決済み】Express.js req.bodyが未定義です。
-
[解決済み】ENOENT, そのようなファイルまたはディレクトリがありません。
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み】AWS lambda function エラー - モジュール 'index' をインポートできません。エラー
-
[解決済み] AWS lambda function error - Unable to import module 'index': エラー
-
[解決済み] nodejs - http.requestでresponse.writeを使用する場合、第一引数は文字列またはBufferでなければなりません。
-
[解決済み] ランタイム 'node' が PATH で見つからない - Visual Studio Code と Node.js
-
[解決済み] npm not able to find a fileに関連するエラーは何が原因でしょうか?node_modules サブフォルダ内にコンテンツがありません。なぜでしょうか?