Angular 11 не отправляет файлы cookie с запросами

#node.js #angular #express

#node.js #angular #экспресс

Вопрос:

Я ломал голову, пытаясь понять, почему этот запрос get не отправляет вместе с ним файл cookie аутентификации, и не могу понять это.

Рассматриваемый запрос выглядит следующим образом:

this.http.get(`${this.url}/api/public/schedules`, {observe: 'body', responseType: 'json', withCredentials: true});

С заранее установленным файлом cookie (который я дважды проверил, он уже установлен, когда этот запрос отправляется) с:

this.CookieService.set("token", token, undefined, undefined, undefined, false);

Инструменты Chrome dev показывают, что файл cookie существует, и для параметра secure установлено значение false, но файл cookie никогда не отправляется ни с какими запросами. Я проверил это как на стороне клиента (chrome сообщает, что файлы cookie не отправляются с запросом), так и на стороне сервера (регистрация файлов cookie, связанных с запросом, всегда остается пустой.)

Вот мой соответствующий код на стороне сервера:

 app.use((req, res, next) => { //log all requests
    console.log(`Received ${req.method} request for ${req.url}`);
    console.log("Cookies: "   JSON.stringify(req.cookies));
    res.append('Access-Control-Allow-Origin', ['http://localhost:4200']); //adding headers here
    res.append('Access-Control-Allow-Credentials', true);
    res.append('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
    res.append('Access-Control-Allow-Headers', 'Content-Type');
    next(); //then continue
});
 

Когда я отправляю тот же запрос с файлом cookie в insomnia, он правильно регистрируется, поэтому я не уверен, что происходит. Любая помощь будет оценена.

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

1. Это: » и для безопасности установлено значение false » является подозрительным в настройке аутентификации. Вы хотите сказать, что протокол ${this.url} is http и not https ?

2. ДА. На самом деле нет никаких ценных данных, к которым можно получить доступ, если кто-то обойдет аутентификацию здесь, это школьный проект.

3. Вы уверены, что не происходит перенаправление или прокси-сервер?

4. Может ли это быть связано с этой проблемой?

5. Да, абсолютно уверен. Ни один из них не используется. @MikeOne.