在网址http://localhost:9001/mypage
上我有一个带有某项服务的身份验证网址的弹出窗口。
const authUrl = 'http://someauthservice.com/someurl'
const authPopup = window.open(authUrl, '');
authPopup.addEventListener('message', (event: any) => {
console.log(event);
});
当用户在该网址上进行身份验证时,弹出窗口会被重定向到我的回调网址http://localhost/callbackurl
,其中有一个简单的页面,其中的代码发布了一个窗口消息:
window.postMessage('hey ho', 'http://localhost:9001/mypage');
在此流事件中,侦听器丢失事件并且不运行回调:
const authUrl = 'http://someauthservice.com/someurl'
打开弹出窗口。auth
按钮。在此流程中,它可以正常工作:
const authUrl = 'http://localhost/callbackurl'
打开弹出窗口。因此,如果在弹出窗口中加载了某个url然后加载了我的url,则不再侦听该事件,但如果该url没有更改,则会侦听该事件并触发回调。
当网址更改时,如何保留事件监听器?
更新:我的想法是我想允许用户在第三方服务上进行身份验证,然后当它使用某些代码重定向到我的网址时,我明白身份验证是成功的,因此我希望我的主机应用程序运行一些逻辑,比如将某些变量从Pending
更新为Verified
。