Почему я не вижу свой SessionId внутри моего повара ie, который я отправляю обратно своему клиенту с помощью Express -сессий? - PullRequest
0 голосов
/ 17 января 2020

В настоящее время я создаю свой серверный код в Express. js (я новичок в node.js, express. js). Я понимаю, что, основываясь на документации express -сессии (здесь https://www.npmjs.com/package/express-session), идентификатор сеанса хранится в файле cook ie для отправки клиенту, а не данным сеанса. Однако, когда я делаю I console.log(req.session), я получаю следующее в выводе консоли

Session {
  cookie: {
    path: '/',
    _expires: 2020-01-16T22:45:44.384Z,
    originalMaxAge: 86400,
    httpOnly: true
  }
}

Идентификатор сеанса не указан выше. Я знаю, что если я сделаю console.log(req.session.id) или console.log(req.sessionID), я получу случайно сгенерированный идентификатор сессии. Проблема в том, что мой повар ie не указал sessionId. Мой код, размещенный ниже, находится в моем app.js и является инициализацией моего сеанса и хранилища сеансов.

app.js

const redis = require('redis');
const cryptoRandomString = require('crypto-random-string');
const session = require('express-session');
const routes = require('./routers');
var app = express();

//initialize Redis Store
let redisStore = require('connect-redis')(session)
let client = redis.createClient();

//app.get('/', (req, res) => res.send('App is working'));

//initialize session 
app.use(session({
  genid: function(req) {
    return cryptoRandomString({length: 10}); //use UUIDs for sessionIDs
  },
  secret: "keyboard cat",
  store: new redisStore({host: 'localhost', port: 6379, client: client, ttl: 260}),
  resave: false,
  saveUninitialized: false,
  name: "sid",
  cookie: {httpOnly: true, maxAge: 86400}
}));

app.use('/', routes);
app.use('/api/idToken', routes);

app.listen(5000, () => {
    console.log("server up");
});

module.exports = {
    app
};

Кроме того, как именно я должен отправить повара ie клиенту с именем в Set-Header? Я должен использовать res.cookie()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...