Меня интересует, как реализовать OAuth в React с помощью popup ( window.open).
Например у меня есть:
mysite.com- здесь я открываю всплывающее окно.passport.mysite.com/oauth/authorize- неожиданно возникнуть.
Основной вопрос - как создать соединение между window.open(popup) и window.opener(как известно, window.opener имеет значение null из-за междоменной безопасности, поэтому мы больше не можем его использовать).
⇑
window.openerудаляется всякий раз, когда вы переходите на другой хост (из соображений безопасности), обходить его невозможно. Единственный вариант должен делать оплату в кадре, если это возможно. Верхний документ должен оставаться на том же хосте.
Схема:
Возможные решения:
- Проверьте открытое окно, используя
setIntervalописанное здесь . Использование кросс-хранилища (не стоило имхо).
Каков наилучший рекомендуемый подход в 2019 году?
Оболочка для React - https://github.com/Ramshackle-Jamathon/react-oauth-popup
localStorage, но он работает только для того же домена, поэтому он не работает в моем состоянии
window.openerпосле перенаправления обратно на наш домен, но это не так


setIntervalможет быть использован как запасной вариант для localStorage