Могу ли я получить данные "req.session" (экспресс-сессия)? - PullRequest
0 голосов
/ 21 октября 2018
app.get("/route1", async (req, res) => {
  res.header('Access-Control-Allow-Origin', '*');
  console.log('TCL: req.session', req.session);
  res.send(req.session);
});

app.get("/route2", (req, res) => {
  req.session.test = "test";
  console.log('TCL: req.session', req.session);
  res.send(req.session);
});

route2 устанавливает данные сеанса, мой терминал / браузер регистрирует их просто отлично.Если я захожу на route1 в строке URL браузера, данные успешно отображаются как в браузере, так и в терминале

. Если я пытаюсь получить route2 в компоненте реагирования, я не получаю данные, которые я сохранил в req.session.test имой терминал регистрирует только часть cookie, например:

TCL: req.session Session {
  cookie:
   { path: '/',
     _expires: null,
     originalMaxAge: null,
     httpOnly: false,
     secure: false } }

config:

app.use(session({
    secret: prodkeys.sessionSecret,
    resave: false,
    saveUninitialized: false,
    cookie: {
        httpOnly: false,
        secure: false,
      }
}));

в компоненте:

const isSession = await axios.get("http://localhost:5001/route1",
   {credentials: 'include', proxy: true});

Ответы [ 3 ]

0 голосов
/ 21 октября 2018

Попробуйте использовать withCredentials: true вместо credentials: 'include' Я не могу найти опцию учетных данных в официальном документе.

0 голосов
/ 21 октября 2018

Я не на 100% какая часть исправила это, но я установил cors и настроил мой выбор таким образом, и он решил это:

const isSession = await axios.get("http://localhost:5001/route1",
    {credentials: 'include', proxy: true, withCredentials: true});

Index.js:

app.use(cors({
    origin: ['*'],
    methods: ['GET','POST'],
    credentials: true // enable set cookie
}));
0 голосов
/ 21 октября 2018

пожалуйста, подтвердите.Вы должны настроить экспресс в следующем порядке:

app.use(express.cookieParser());
app.use(express.session({ secret: sessionVal }));
app.use(app.route);
It may solve your problem.
...