Файлы cookie не сохраняются даже при значении withCredentials, равном true - PullRequest
0 голосов
/ 09 марта 2020

Для аутентификации мой сервер (гнездо 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 на сервере, без каких-либо ошибок с обеих сторон при входе в систему.

...