4

PassportJSの一部としてセッションCookieを設定しています。connect.sid cookieがブラウザーに渡され、後続のHTTPリクエストでアプリケーションに戻されるのを確認できます。

ただし、ルートの1つでreq.cookiesを読み取ると、空になっています。構成設定でexpress.cookieParser()、express.session()、およびpassport.session()を設定しました。Express / NodeでCookieを使用するために必要なことは他にありますか?

これが私のアプリ構成設定です:

app.configure(function () {
  app.set("db_url", config.db[app.settings.env]);
  app.set('port', process.env.PORT || 3000);
  app.use(express.logger('dev'));  /* 'default', 'short', 'tiny', 'dev' */
  app.use(express.static(path.join(__dirname, 'public')));
  app.use(express.cookieParser());
  app.use(express.bodyParser());
  app.use(express.session({secret: "keyboard cat"}));
  app.use(passport.initialize());
  app.use(passport.session());
  app.use(users);
  app.use(orgs);
  app.use(errorHandler);
});

ありがとう!

4

1 に答える 1

-1

req.session代わりに試してくださいreq.cookies。Cookie 内に情報を保存する場合は、次のように設定する必要があります。

res.cookie('remember', 1, { maxAge: 60 * 1000 });

次にreq.cookies、含む必要があります

{ remember: '1' }

のデフォルト値req.session

{ cookie: 
  { path: '/',
    _expires: null,
    originalMaxAge: null,
    httpOnly: true
  }
}
于 2013-01-19T12:16:24.937 に答える