Почему почтальон получает cookie-файл экспресс-сессии, а не мой почтовый запрос в приложении React - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть сервер nodejs с экспресс, экспресс-сессией и паспортом для аутентификации. Мой маршрут входа выглядит так:

router.post('/login', passport.authenticate('local'), (req, res) => {
  return res.status(200).json({
    message: "Auth successful",
    username: req.user.username
  })
})

Когда я тестирую маршрут с почтальоном, я получаю печенье с идентификатором сеанса в ответе: Результат почтальона Но когда я делаю почтовый запрос с аксиосом в React, я не получаю никаких файлов cookie:

const login = (email, password) => {
    const reqBody = {
        email,
        password
    }

    const config = {
        withCredentials : true,
    }

    return axios.post(`${serverUrl}/user/login`, reqBody, config)
}

Вот мои cors на моем сервере Node.js:

// Cors definition 
app.use((req, res, next) => {
  res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000')
  res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept')
  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE')
  res.setHeader('Access-Control-Allow-Credentials', true)

  next()
})

Вкладка «Сеть» в Chrome Как видите, в консоли нет вкладки «cookie» и нет заметок в заголовках. Поэтому я хочу знать, почему и как я могу это исправить.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Так! Я нашел ответ на вопрос, почему я вижу куки в ответе Почтальона, но не в моем браузере (Chrome). Я нашел cookie в chrome, а не в приложении -> Хранилище -> Cookies в консоли страницы, но в chrome: // settings / cookies / detail? Site = 192.168.2.89

Я понял, что express-session или postman.session () установили http только в cookie:

Использование флага HttpOnly при создании файла cookie помогает снизить риск доступа сценария на стороне клиента к защищенному файлу cookie (если браузер его поддерживает). https://www.owasp.org/index.php/HttpOnly

Мне все еще не удалось увидеть, где Express настраивает заголовки и как регистрировать файлы cookie, отправленные сервером.

0 голосов
/ 09 апреля 2019

куки не приходят в ответе, они приходят в шапке.посмотрите в шапке, у вас должна быть запись 'Set-Cookie'

...