Cookie не сохраняется в Microsoft Edge

#http #cookies #jwt #microsoft-edge

Вопрос:

Я сохраняю JWT в cookie для аутентификации с помощью следующего кода:

 res.cookie("jwt", my_token, {
  secure: false,
  httpOnly: true,
});
 

Это отлично работает в Chrome и Firefox, но не всегда в edge. Странно думать, что это работает, когда я захожу на веб-сайт по IP-адресу, но не когда я использую доменное имя.

Это, если я его извлекаю:

 const response = await fetch(url, {
        method: "post",
        headers: { "Content-Type": "application/json" },
        withCredentials: true,
        credentials: "include",
        body: JSON.stringify(body),
    });
 

Я пытался изменить значение учетных данных, но безрезультатно.

Редактировать: cookie сохраняется с помощью сервера разработки на localhost. Проблема существует при развертывании с использованием Nginx в режиме http и доступе к веб-сайту только по DNS-имени, а не по ip.

Проблема может быть воссоздана путем переназначения хостов с помощью Fiddle.

Комментарии:

1. Основываясь на описанной вами проблеме, я создал простой пример и сослался на эту статью , чтобы протестировать его в Edge (версия 95.0.1020.38). Я обнаружил, что код может работать нормально. Я изменил localhost на адрес обратной связи (127.0.0.1), и это также сработало. Поэтому, боюсь, я не могу определить причину вашей проблемы. Не могли бы вы предоставить более подробную информацию, например, полный код, который может воспроизвести эту проблему?

2. Я добавил еще несколько деталей

3. Если это так, я думаю, что эта проблема должна быть связана с NginX. Это может быть несовместимо с Edge, и я рекомендую вам обратиться за более профессиональной консультацией на форуме NginX .