Мобильное приложение: выход не работает после входа через Facebook

Всем привет, у меня возникла проблема. После входа через Facebook при нажатии на кнопку выхода страница зависает. Перенаправления на главную страницу не происходит. Однако, если перезагрузить страницу, она перенаправляет на главную, что указывает на уничтожение сессии. Это говорит о том, что при перенаправлении после нажатия кнопки выхода возникает ошибка. Кто-нибудь может помочь найти решение этой проблемы?

Это происходит на мобильных устройствах, в веб-версии всё работает нормально.

Спасибо.

Вы можете воспроизвести это здесь, в Meta?

Мне удалось воспроизвести проблему на https://try.discourse.org/.

Прикрепленное видео:

Ты можешь воспроизвести это, @tshenry?

Да, сэр. Я могу воспроизвести это в Safari на iOS.

В чём именно ошибка, @tshenry?

Выход выполнен успешно, просто не происходит обновление/перенаправление.

Нет всплывающего окна с ошибкой, и в логах /logs я ничего не вижу (даже с включенным детальным логированием). В консоли браузера при первой попытке выхода ничего нет, но ошибки появляются после последующих попыток выхода (попытка выйти, когда технически я уже вышел):

Это очень похоже на недавнюю ошибку, о которой я сообщал в Apple.

Попробуйте воспроизвести проблему после установки параметра same site cookies в значение Disabled на Try. Чтобы изменения вступили в силу, вам потребуется выйти из системы и войти снова.

Да, проблема сохраняется даже после отключения параметра «cookies same site».

Можете подтвердить, что это также воспроизводится на meta? Также подтвердите, что проблема возникает только на мобильных устройствах. Происходит ли это также, если добавить ?mobile_view=1 к URL, чтобы принудительно включить мобильный вид на компьютере?

Я не проверял в meta, только на https://try.discourse.org/. Да, это происходит только в мобильном Safari на iOS, и нет, это не происходит, когда я добавляю ?mobile_view=1 к URL, чтобы принудительно включить мобильный вид на рабочем столе. @tshenry, пожалуйста, подтвердите мои наблюдения.

Я могу подтвердить:

  • Перенаправление при выходе работает корректно в Desktop Safari при принудительном включении мобильного вида.
  • Проблема воспроизводится в Meta с мобильным Safari.
  • Похоже, это происходит только при попытке выйти с начальной страницы входа сразу после каждого входа в систему.
    • Если я вхожу в систему, открываю тему и пытаюсь выйти, перенаправление при выходе работает корректно.
    • Если я вхожу в систему, открываю тему, нажимаю кнопку «Назад», а затем пытаюсь выйти, перенаправление при выходе НЕ работает.
    • Если я вхожу в систему, открываю тему, нажимаю на логотип «Домой», а затем пытаюсь выйти, перенаправление при выходе работает.

@Falco, вы были правы! Я только что проверил это на Try, и это действительно решает проблему.

О, черт, я должен был поставить на это :facepalm:

Мне пришлось отключить Discourse offline из-за этой ошибки, хотя функция работает нормально, но мы по умолчанию используем строгие куки, что вызывает ошибки в Safari.

@tshenry, у меня всё ещё возникает проблема после отключения «cookies с тем же сайтом». Однако перенаправление сработало корректно при первой попытке. Но при повторной попытке оно не сработало.

Также я проверил это на Try, и во второй раз оно тоже не сработало.

Хм, вы правы… Думаю, я слишком обрадовался, когда оно сработало в первый раз, и не стал проверять последующие попытки :pensive:

У меня есть новая заметка: перенаправление при выходе из системы, похоже, работает сразу после получения сообщения «Время ожидания авторизации истекло, или вы сменили браузер. Пожалуйста, попробуйте снова». Это происходит, когда попытка входа в систему выполняется очень быстро после выхода.

Видео ниже показывает неудачное перенаправление при выходе в первый раз, а затем, на 13-й секунде, показывает, как перенаправление сработало после отображения сообщения.