Задать вопрос
@dimonnwc3

Как авторизоваться через JS (XHR, Fetch)?

К примеру есть сервер, который посылает JSON {success: true} при правильном лог/пасс и {success: false} если нет.

Такая форма авторизует пользователя при посте на login:
form(id="login-form", method="post", action="/login")

и выдаем ему cookie для сессии

Но если я ставлю e.PreventDefault() на onsubmit, и сам отправляю форму например методом fetch, то я получаю json в ответ, но cookie в браузер не ставятся.

Нагуглив я нашел, что cookie не ставятся в целях безопастности.

Как обычно решают такие задачи?
Как правильно отослать форму и принять cookie?
  • Вопрос задан
  • 1235 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@dimonnwc3 Автор вопроса
засада оказалась в credentials: 'same-origin'
теперь пашет:

fetch('/login', {
      method: 'POST',
      body: userInfo,
      credentials: 'same-origin',
      headers: {
        "Content-Type": "application/json"
      }
    })
    .then(checkStatus)
    .then(parseJSON)
    .then((data) => {
      console.log('request succeeded with JSON response', data);
    }).catch((error) => {
      console.log('request failed', error);
    });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы