Angular 10: заголовки ответов set-cookie игнорируются?

Я пытаюсь использовать файл cookie аутентификации сеанса после входа в систему, но файл cookie не сохраняется.

Для тестирования я создал простой метод CookieTest на своем сервере Dotnet Core:

[Route("CookieTest")]
public ActionResult CookieTest()
{
  var options = new CookieOptions()
  {
    SameSite = SameSiteMode.None,
    Secure = true
  };
  Response.Cookies.Append("NoPermsCookie", "cookie set");
  Response.Cookies.Append("SameSiteSecure", "cookie set", options);
  return new OkResult();
}

Если я нажму запрос GET из обычного окна браузера (используя Chrome), я увижу заголовки set-cookie, а файлы cookie отобразятся на странице инструментов разработки приложений.

Если я запускаю простой тест из своего приложения Angular:

this.authService.getCookieTest().subscribe(() => console.log('Got response, check cookies!'));

public getCookieTest() {
  return this.http.get(`${this.urlBase}/api/auth/cookietest`);
}

Я получаю сообщение журнала о том, что запрос выполнен успешно; Я вижу заголовки set-cookie в ответе; но значения cookie на самом деле не установлены.

Вот заголовки запросов из инструментов разработки: введите здесь описание изображения

Я уверен, что делаю что-то не так (конфигурация CORS? Отсутствует заголовок в запросе?), но я понятия не имею, что. Я уверен, что это работало в предыдущих версиях Angular, но я давно не пробовал.

Какие-либо предложения?


person Bill Turner    schedule 13.11.2020    source источник
comment
Здравствуйте, пробовали использовать настройку заголовка индивидуализированную?   -  person Lucho    schedule 14.11.2020


Ответы (1)


Это никогда не подводит, вскоре после того, как вы зададите вопрос, вы получите ответ...

Глядя на статью об использовании HttpInterceptor для принудительного использования withCredentials, я понял, что в ходе тестирования я устанавливал это как заголовок, а не как параметр для запросов HttpClient на получение/отправку.

Правильно используя withCredentials, и все работает.

[Фейспалм]

person Bill Turner    schedule 13.11.2020
comment
Меня смущала одна вещь: в окне приложения Chrome DevTools не отображалось значение файла cookie, хотя оно было установлено. Я предполагал, что файл cookie не был установлен, когда проблема заключалась в том, что он был установлен, но не был отправлен. - person Bill Turner; 14.11.2020