Проблема с Discourse как провайдером SSO и регистрацией через социальные сети

Привет,

Проблема

При использовании Discourse в качестве провайдера SSO через API (домен A), если вы попытаетесь зарегистрироваться в Discourse (домен B) с помощью кнопки соцсети, модальное окно create-account не появится сразу. Вместо этого вы вернетесь к модальному окну login.

В этот момент вам нужно закрыть окно login, затем нажать кнопку «Зарегистрироваться» (Sign Up), и вы увидите модальное окно create-account, которое должно было появиться изначально.

Демонстрация проблемы

Короткое видео-демо:

  • Браузер Edge с очищенным кэшем/куками и без расширений.
  • Используется плагин WP-Discourse, настроенный на использование Discourse как провайдера SSO (самый быстрый способ продемонстрировать проблему).

Сначала вы видите, как я нажимаю на ссылку входа через SSO от WP-Discourse.
После нажатия на кнопку Facebook я перенаправляюсь в модальное окно login вместо create-account.

Возможная причина

Мы используем разные домены для Discourse и для того места, откуда вызывается API.

Чтобы убедиться, что проблема не в плагинах или чём-то подобном, я смог воспроизвести её на чистой установке WordPress (с WP-Discourse, настроенным на использование Discourse как провайдера SSO) и на чистом Discourse. Оба находятся на разных доменах.

(Примечание: это не связано с WP-Discourse, это просто более удобный способ показать/протестировать проблему. Мы также можем воспроизвести это в нашем приложении, которое потребляет API Discourse и также выступает в роли провайдера SSO).

Дополнительная информация

  • Настройки безопасности Discourse отключены (не уверен, влияет ли это: CSP отключен, куки установлены в значение None или Disabled).
  • Discourse обновлён до последней версии.
  • Проблем с входом через SSO нет.
  • В консоли браузера и в логах Discourse ничего нет.
  • Если вы столкнулись с проблемой один раз через API SSO и затем попытаетесь зарегистрироваться через соцсеть напрямую в Discourse, вы получите ту же проблему. В этом случае вам нужно очистить куки/кэш, чтобы всё заработало. (Аналогичная проблема описана здесь: Suggestion: unite the sign up & log in buttons)

Поскольку Discourse способен показать ожидаемое модальное окно create-modal с предзаполненными полями после ручного нажатия на «Зарегистрироваться», это заставляет меня думать, что существует ошибка или ситуация, которую Discourse должен обрабатывать. Не так ли?

Можно ли что-то сделать, чтобы исправить это поведение? Что-то упущено?

Спасибо!

Эта ошибка настолько незначительна, что её снова можно игнорировать?

Я уже сообщал о подобной проблеме в январе, но здесь вы можете увидеть минималистичный пример воспроизведения на чистом Discourse с официальной реализацией SSO. В любом случае, я бы хотел, чтобы кто-то либо признал наличие ошибки, либо объяснил, что мы делаем что-то не так.

Как привлечь внимание к этой проблеме? Возможно ли нанять членов команды, если дело в деньгах?

– Разочарованный клиент и разработчик.

Привет! Я настроил wp-discourse на стандартной установке WordPress, сделал WP клиентом SSO и настроил вход через Facebook на Discourse. Оба сайта размещены на разных доменах.

Я оставлю оба сайта общедоступными на несколько дней/недель, чтобы любой пользователь с аккаунтом Facebook мог протестировать и самостоятельно увидеть проблему.

Редактирование: удалил свой dev-инстанс Discourse, но он вел себя точно так же, как в видео от arkshine.

Нажмите «Войти через Facebook», и снова появится то же самое всплывающее окно вместо того, чтобы показать окно «Создать новый аккаунт» с предварительно заполненными полями.