Невозможно установить DOMAIN cookie в VueJS, используя VUE-COOKIES - PullRequest
0 голосов
/ 14 июня 2019
  • "vue": "^ 2.6.10"
  • "vue-cookies": "^ 1.5.13"

Я отправляю HTTP POSTзапрос из приложения VueJS, использующего Axios, на внутренний сервер на другом компьютере.Значение, возвращаемое в ответе, используется для создания файла cookie, например «exampleName»: «exampleValue».Пока все хорошо.

Проблема в том моменте, когда я пытаюсь создать cookie с доменом, содержащим адрес внутреннего сервера.

Без правильного значения домена я получаю401 статус для всех запросов

В ходе тестов я изменил значение домена вручную в devtools на желаемое значение (адрес внутреннего сервера) и затем реквизитыначал работать (перестал получать статус 401 и начал получать 200 OK).


При использовании функции:

 api.post('http://...', form).then(response => {
      $cookies.set("keyExample", response.data);
 });

файл cookie создан правильно,и я вижу это в Chrome devtools,

  • Но все же не имеют желаемого значения домена:

enter image description here

  • Желаемый:

enter image description here

Согласно документации vue-cookies библиотека, я мог бы использовать что-то вроде:

$cookies.set (keyName, value [, expireTimes [, path [, domain [, secure]]])

, чтобы создать кукиУже с нужным доменом, но всякий раз, когда я пытаюсь это сделать, он не работает, и cookie даже не создается.

Я все еще пытаюсь:

// set domain
this.$cookies.set("key","value",null, null, "192.168.1.1"); // domain address

из документов , но безуспешно ...


Думаю ли я правильный путь?Есть ли другой способ обработки запросов на другом сервере?

Любая помощь приветствуется.Заранее спасибо!

1 Ответ

0 голосов
/ 14 июня 2019

Как объяснил @Taplar:

Вы не можете создать файлы cookie для домена, который не является родительским вашего собственного домена. Например, myplace.me.com может создать файл cookie для myplace.me.com или me.com , но не что-либо остальное.

Источник зависит от того, что в URL. Что бы ни было в вашем браузере, URL:

[protocol]://[domain]:[port]
http://  192.168.1.1 :8080

, который определяет ваше происхождение и поиск файлов cookie.


  • Я попытаюсь развернуть приложение VueJS на том же компьютере, на котором размещен бэкэнд-API, возможно, это будет работать. Спасибо.

  • ОБНОВЛЕНИЕ: как объяснил @Lawrence Cherone:

«Бэкэнд» должен устанавливать cookie

Я переписал бэкэнд-код, и он заработал! Большое спасибо !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...