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