Javascript 关闭Google OAuth2的弹出窗口
我使用Javascript 关闭Google OAuth2的弹出窗口,javascript,popup,popupwindow,window.open,oauth2,Javascript,Popup,Popupwindow,Window.open,Oauth2,我使用newWindow=window.open(…)在弹出窗口中打开我的oauth2 for Gmail,然后当用户填写完并点击“允许”时,它会重定向到我的服务器,在那里检索和存储令牌。最后,服务器返回'Error'或'Success',因此弹出窗口中只包含该信息。现在在角度方面,我有这个运行 checkConnect = setInterval(function() { try{ if(newWindow.document.body.innerText === 'Succ
newWindow=window.open(…)
在弹出窗口中打开我的oauth2 for Gmail,然后当用户填写完并点击“允许”时,它会重定向到我的服务器,在那里检索和存储令牌。最后,服务器返回'Error'或'Success',因此弹出窗口中只包含该信息。现在在角度方面,我有这个运行
checkConnect = setInterval(function() {
try{
if(newWindow.document.body.innerText === 'Success') {
console.log('Success');
newWindow.close();
window.clearInterval(checkConnect);
}else if(newWindow.document.body.innerText === 'Error') {
console.log('We had an error!');
newWindow.close();
window.clearInterval(checkConnect);
}else if(newWindow.closed) {
console.log('WINDOW WAS closed');
window.clearInterval(checkConnect);
}
}catch(e) {
//console.log(e);
}
}, 100);
这有时有效,有时失败。我还将此代码用于其他Oauth提供程序,例如Dropbox。知道为什么吗?嗯,我无法通过弹出窗口来找出原因。但是,我可以通过在同一个页面中打开oauth页面,然后重定向回我希望用户访问的页面来解决这个问题 此外,谷歌还提供了一些库,可以在弹出窗口中为您打开并处理关闭操作