我对如何使用popup(window.open
)在React中实现OAuth感兴趣。
例如,我有:
mysite.com
-这是我打开弹出窗口的地方。passport.mysite.com/oauth/authorize
- 弹出。
主要问题是如何在window.open
(popup)和(popup)之间建立连接(window.opener
众所周知,由于跨域安全性,window.opener为null,因此我们不能再使用它了)。
⇑
window.opener
每当您导航到不同的主机(出于安全原因)被删除,有没有办法解决它。如果可能的话,唯一的选择应该是在框架内付款。最上面的文档需要保留在同一主机上。
方案:
可能的解决方案:
那么,2019年推荐的最佳方法是什么?
React包装器-https: //github.com/Ramshackle-Jamathon/react-oauth-popup
@KhanhTO,是的,我完全同意您的意见
—
Arthur
localStorage
,但是它仅适用于同一域,因此在我的情况下不起作用
完成OAuth之后,子窗口将重定向回您的域,您现在与父窗口位于同一个域中
—
Khanh TO
@KhanhTO,嗯,这是个好主意!我应该知道..
—
亚瑟
如果浏览器
—
Khanh TO
window.opener
重定向回到我们的域后还原,那会更好,但是事实并非如此
setInterval
可以用作localStorage的后备时间