Как настроить сохранение Cookie в expressJs и использовать их на ReactJS?

  • 19 августа 2023 г. 19:36
Ответы на вопрос 1
Проблема в том, что настройки Cookie не могут быть отправлены с простым протоколом HTTP на безопасный протокол HTTPS. В вашем коде вы установили опцию `secure: true`, что требует, чтобы протокол был HTTPS. Поэтому, если вы разрабатываете на локальном сервере, у вас не может быть безопасного протокола HTTPS и вы не сможете установить Cookie с помощью этой опции.

Для разработки на локальном сервере вам нужно установить `secure: false`, чтобы ваши Cookie сохранялись. Однако, когда вы развернете свой код на реальном сервере с протоколом HTTPS, вам необходимо будет изменить это значение на `true`.

Например:

```javascript
res.cookie('test', 'example-cookie-value', {
    httpOnly: true,
    secure: false, // Используйте true для безопасного протокола HTTPS
    maxAge: 600
})
```

Кроме того, убедитесь, что вы настроили CORS на вашем сервере ExpressJS, чтобы CORS не блокировал запросы со страницы ReactJS.

Однако, если сервер и фронтенд работают на разных доменах или поддоменах, вы также должны установить `credentials: true` в настройках Axios на стороне клиента, чтобы разрешить передачу учетных данных (включая Cookie) через CORS.

```javascript
// Добавьте credentials: true в настройки Axios
async function send() {
    return await axios.post(url, data, { withCredentials: true })
}
```

Похожие вопросы