#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 .