私はこれを広範囲に調査しました(同様の質問がたくさんあります)が、探している正確な答えが見つかりません。
シングル サインオン ウィジェットを作成しているので、ユーザー フローは次のようになります。
ユーザーが [ログインしてウィンドウを開く (ドメイン 1)] > [ログイン フロー (ドメイン 2)] > [ランディング ページ (ドメイン 1)] をクリックします。
ランディングページで使用しているコードは次のとおりです。
<html>
<head>
<title>Redirect</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript">
if (window.opener && !window.opener.closed) {
setTimeout(function(){
window.opener.location.href = "[some URL]";
window.close();
},2000);
}
</script>
</head>
<body>
<p>Logging you in...</p>
</body>
</html>
最後にランディング ページを配置する目的は、window.opener へのアクセスに関するクロスドメインの問題を解消できるようにすることです。
これは、IE を除くすべてのブラウザーで魅力的に機能します (あえぎ!)。自分のドメインに戻ったにもかかわらず、IE は window.opener が null であると言います。
これまで読んだ中で、この問題を本当に解決するものはありません。非常に多くのサイトが FSSO を使用しているため、何らかの方法でこれを行う必要があると考えなければなりません。残念ながら、ポップアップ ウィンドウの代替手段を見つけることはできません。
ブラウザ関連のセキュリティのために、これは IE では不可能ですか? 私が考えることができる唯一の他のことは、親にある種のリスナーを配置して、子が閉じるのを待つことです。うーん。