Кнопка в главном окне открывает всплывающее окно для URL-адреса провайдера OAuth. С небольшой страницей HTML /JS. < /li>
Эта страница отправляет результат обратно в главное окно. Не работая (Pipedrive только в настоящее время, Salesforce работает нормально):
Если пользователь не вошел в систему, всплывающее окно выполняет полностраничный перенаправление (через домены), что приводит к: < /p>
window.opener === null (не может использовать Postmessage) < /p>
propupup. Видимый)
Некоторые обходные пути , которые я нашел:
Я переключился на использование BroadcastChannel со страницы обратного вызова, например:
const channel = new BroadcastChannel('oauth-channel');
channel.postMessage({ type: 'oauth-success', data: ... });
< /code>
Проблема теперь с FroadcastChannel, у меня нет надежного способа обнаружения того, закрыл ли пользователь вручную всплывающее окно (щелкнул «X») - потому что: < /p>
Я не могу использовать всплывающее окно. Обработка oauth rougin через всплывающее окно, которое удовлетворяет: < /p>
Полная поддержка перенаправления OAuth2 (даже поперечный кроссоригин) < /p>
< /li>
, способ различения успеха, неудачи и, если пользователь закрыл, по всему п. /> < /ol>
Заранее спасибо
Подробнее здесь: https://stackoverflow.com/questions/796 ... r-or-relia
Мобильная версия