Gmail の oauth2 をポップアップで開きnewWindow = window.open(...)
、ユーザーが入力を完了して「許可」を押すと、トークンが取得されて保存されるサーバーにリダイレクトされます。最後に、サーバーは「エラー」または「成功」を返すため、ポップアップにはそれが含まれます。今Angular側でこれを実行しています。
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);
これはうまくいくこともあれば、うまくいかないこともあります。このコードは、Dropbox などの他の Oauth プロバイダーにも再利用しています。理由はありますか?