OAuth для Facebook и Google в новом окне?

Мы размещаем Discourse во фрейме, поэтому Google OAuth не работает, так как у них установлены заголовки X-Frame-Options, предотвращающие загрузку в фрейме.

Мы хотели бы использовать window.open, чтобы открывались «маленькие» URL-адреса OAuth для Facebook и Google, а затем при закрытии корректно перенаправлять window.opener. Возможно ли это настроить в параметрах Discourse? Или где находится код для перенаправления location, чтобы мы могли его изменить?

Я не считаю, что это официально поддерживается. Discourse — это одностраничное приложение, и нет никаких гарантий при запуске внутри фрейма.

Подробнее:

Я не прошу гарантий. Просто хочу знать, где находится JavaScript, который изменяет window.location, чтобы я мог заменить его на window.open.

В Discourse на самом деле есть новая переменная конфигурации, позволяющая отображать его во фреймах, и это работает. Посмотрите, например, на https://qbix.com/ecosystem или https://intercoin.app.

О, это интересно, да, вы правы, и эта функция существует уже 3 года :sweat_smile:. Однако она скрыта, что может указывать на наличие некоторых ограничений.

Да! Так что мой главный вопрос — где находится код, который срабатывает при нажатии на кнопку «Connect with Facebook» или «Google»? Как его переопределить? Возможно, в JavaScript темы сайта, чтобы не пришлось разрабатывать плагин?

Мне нужно просто заменить window.location.href = … на window.open()