dima11221122
@dima11221122
Разработчик программного обеспечения

Почему не логинится в ios версии через cookie?

Всем привет. Пытаюсь залогиниться на сайте (форум phpbb) с приложения. Для этого отправляю запрос
let formData = new FormData();
          formData.append("sid", sid);
          formData.append("username", user);
          formData.append("password", password);
          formData.append("redirect", redirect);
          formData.append("autologin", 'on');
          formData.append("login", login);
          console.log("SID", sid);
          return fetch(`${baseUrl}/forum/phpBB3/ucp.php?mode=login`, {
            method: 'POST',
            body: formData,
            credentials: 'same-origin'
          })

Логинится успешно, т.к. кука приходит (если вводить неправильный логин и пароль, то кука не приходит). Далее пытаюсь сделать запрос для получения информации о пользователе
fetch(`${baseUrl}/forum/phpBB3/ucp.php?i=ucp_profile&mode=reg_details&sid=${this.sid}`, {
      method: 'GET',
      credentials: 'same-origin'
    })

И тут самое интересное: на Android версии приложения я получаю корректную страницу авторизованного пользователя. На ios сборке я получаю неавторизованную страницу. Грешу на работу с cookie. В это и заключается вопрос - почему не работает в ios.
Пробовал
- credential менять на omit, include
- брать куку из set-cookie после логина, преобразовывать и отдавать в cookie хидере второго запроса
- axios с withCredentials
не помогает
React Native 0.55.4
Expo v29
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 1
@DragonSpirit
Mobile Developer
Предлагаю пройтись сниффером (тем же charles) или сравнить запросы, которые уходят с ios и android, заодно посмотреть различия в cookies. Как вариант проверить запросы можно и через react native debugger, как подключить к expo описано в этой статье
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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