Приложение Angular не получает заголовок Set-Cookie, даже если сервер отправляет его - PullRequest
0 голосов
/ 02 мая 2018

Я отправляю запрос post на сервер следующим образом

Я получаю ответ и печатаю заголовки, полученные в ответе, следующим образом

 return this.bs.signinUser(user).subscribe((res:HttpResponse<any>)=>{console.log('response from server:',res);
      console.log('response headers',res.headers.keys())
    } );

Я заметил, что хотя сервер отправляет 10 заголовков, клиент (Angular) напечатал только 9. Заголовок Set-Cookie не был отправлен в приложение Angular. Почему это происходит? Похоже, что, вероятно, из-за этого мое приложение не устанавливает файлы cookie, предположим, что они были получены в заголовке Set-Cookie в последующих запросах, которые не проходят проверку подлинности.

Ответ, как видно из консоли отладки браузера (вкладка сети)

enter image description here

Ответ напечатан на консоли браузера.

response from server: 
Object { headers: {…}, status: 200, statusText: "OK", url: "http://localhost:9000/ws/users/signin", ok: true, type: 4, body: {…} }
main.bundle.js:1127:13
response headers 
[…]
​
0: "Content-Length"
​
1: "Content-Security-Policy"
​
2: "Content-Type"
​
3: "Date"
​
4: "Referrer-Policy"
​
5: "X-Content-Type-Options"
​
6: "X-Frame-Options"
​
7: "X-Permitted-Cross-Domain-Policies"
​
8: "X-XSS-Protection"
​
length: 9

1 Ответ

0 голосов
/ 02 мая 2018

Проблема заключалась в том, что файл cookie, который я отправлял, имел флаг secureCookie, установленный в значение true. Моя теория на эту тему слаба, но кажется, что этот флаг необходим, чтобы избежать прослушивания. На данный момент я установил для этого флага значение false, чтобы моя аутентификация работала. Тем не менее, я все еще вижу только 9 заголовков в печати. Я обновлю свой ответ (как только пойму теорию, стоящую за этим).

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