Cook ie не устанавливается в Scala Play - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь установить повара ie из ответа при использовании игровой среды scala. Я создаю сессию Cook ie с именем UUID (я знаю, что play имеет собственное управление сессиями). Я вижу, что заголовки ответа содержат команду set cook ie, но cook ie не устанавливается.

Ниже приведен код scala в действии в контроллере, в котором готовится ie установлено

val cookie= Cookie("session",
    sessionToken,
    httpOnly=true,
    sameSite=Some(Cookie.SameSite.Lax))

Ok(Json.toJson(res))
  .withCookies(cookie)
// Also tried with .bakeCookies() after the withCookies() call

Я вижу заголовок cook ie в ответе как FireFox, так и Chrome. Они оба показывают то, что кажется правильно сформированным поваром ie в их соответствующем средстве просмотра ответа ie в их инструментах разработчика.

Set-Cookie: session=c0174ed1-ebd3-4a8d-a5b2-5b09a3fe616b; SameSite=Lax; Path=/; HTTPOnly

Однако в обоих браузерах повар ie не получает набор. Я пробовал истину и ложь httpOnly, и возиться со значением maxAge. Я попытался установить для домена URL-адрес, а затем установить URL-адрес в файле hosts , как предлагается здесь.

URL-адрес на веб-интерфейсе реакции

http://localhost:49161/login/hydrate

и конечная точка в игре

http://localhost:49162/user/login/rehydrate

Я также попытался установить путь к / login / hydrate / on the cook ie

Код реакции на внешнем интерфейсе

     // Inside async function
     // methodStrings[method] = "post" in this request
     axios[methodStrings[method]](url, params)
        .then(result => {
          resolve(result);
        })
        .catch(err => {
          console.error(`Error with request to ${url} - ${err}`);
          reject(err.response.status);
        });

А потом я console.log: результат ожидания запроса

1 Ответ

1 голос
/ 18 февраля 2020

Проблема в топоре ios (и / или в браузере).

На основании этой проблемы Заголовки файлов cookie присутствуют, но файлы cookie не сохраняются в браузере # 1553 , вам необходимо установить withCredentials Ax ios config для хранения файлов cookie в браузере после запроса:

  axios.post('domain.com', {
    name: 'name',
    password: 'password'
  }, {
    //AxiosRequestConfig parameter
    withCredentials: true //correct
  })
...