Для аутентификации мой сервер (гнездо js) отправляет обратно повара ie с токеном.
Это делается так:
@SetCookies()
@Post("account/signin")
async signin(@Body() dto: LoginDto, @Req() req, ){
const token = await this._authService.signin(req.user);
const options: CookieOptions = {
expires: moment().add(10, "days").toDate(),
signed: false,
secure: false,
sameSite: false,
httpOnly: true,
};
req._cookies = [
{
name: "SESSIONID",
value: token,
options: options,
}
];
}
И это работает! По крайней мере, почтальон показывает мне, что повар ie был успешно создан и отправлен обратно.
Но когда Angular вызывает API следующим образом:
public signin(dto: LoginDto): Observable<any>{
return this._httpClient.post("http://localhost:3000/account/signin", {
username: dto.username,
password: dto.password,
}, {
withCredentials: true,
})
}
set-cook ie отправляется обратно видимым на вкладке сети devtools.
Chrome заголовки ответа devtools
Но повар ie не хранится на диске , Пользователь вошел в систему, но повар не сохранен ie. EditThisCook ie ничего не показывает, и после перезагрузки при отправке запроса на сервер не отправляется сообщение ie.
В другие вопросы проблема была решена путем установки атрибута secure повара ie в ложь, которую я уже пробовал.
У меня есть настройки cors с учетными данными = true на сервере, без каких-либо ошибок с обеих сторон при входе в систему.