サードパーティのデータにアクセスするために oAuth 1.0 を使用しています。
このために、私は次の手順を実行しています:-
ユーザーが「サードパーティと同期」ボタンをクリックします。(これは通常、ポップアップ ブロッカーを呼び出さないため、ユーザーがクリックする必要があります。)
ユーザーがこのボタンをクリックすると、次のコードが実行されます。
$('#sync_with_thirdparty').click(function(){ var child = window.open('/oauth'); $(child).unload(function() { if (this.location != "about:blank") { alert("Child window closed"); } }); });
新しいウィンドウで、PHP はサードパーティから認証 URL を取得し、ユーザーを同じ URL にリダイレクトします。ユーザーが上記のサードパーティにリダイレクトするとすぐに、「子ウィンドウが閉じられました」と表示されます。
次に、ユーザーはサードパーティのサイトにログインし(必要な場合)、アプリへのアクセスを許可します。彼が許可ボタンをクリックするとすぐに、第三者がユーザーを当社の Web サイトの新しいページにリダイレクトします。このページでは、完全に正常に動作している window.close() メソッドを呼び出しています。
ただし、子ウィンドウで window.close() を実行すると、親ウィンドウは子ウィンドウが閉じていることを認識できません。
どうすればこの問題を解決できますか?
注 : この 3rd は Iframe が好きではなく、トップ ウィンドウで開くように更新されます。サードパーティのコンテンツを制御することはできません。私たちのウェブページは HTML5 形式です。