21

アクセスするための認証を持つ既存のリモート サイトがあり、iframe を使用してこのサイトを自分のサイトに結合したいと考えています。iframe の読み込み時にリモート サイトに自動ログインするのに役立つソリューションはありますか?

<iframe src="http://remote.com/list"></iframe>

http://remote.com/listにアクセスしたい場合は、ログインが必要で、ユーザー名とパスワードを投稿するだけで機能します。iframeがロードされたときに自動ログインする方法は?

ここにいくつかの制限があります

  • ログインはpostメソッドでのみ機能します
  • iframe / JavaScript にはクロスドメインの問題があります
  • ログイン API が提供されていません
  • リモートサイトでは他の変更はできません
4

4 に答える 4

11

他のサイトを所有している場合は、トークンを使用して認証を試すことができます。

承認されたトークンを iframe の url に渡します。

于 2012-08-09T09:53:59.220 に答える
10

これを行うための私の実装は次のとおりです。ただし、これはクロスドメインの問題を解決しません。クロスドメインの問題については、jQuery のJSONPメソッドの使用を試すことができます (jQuery とこのソリューションの組み合わせはまだ試していません)。

<iframe id="MyIFrame" width="400" height="400"></iframe>
<script type="text/javascript">
    var iframeURL = 'http://mysite.com/path/applicationPage.aspx';
    var iframeID = 'MyIFrame';

    function loadIframe(){
        //pre-authenticate
        var req = new XMLHttpRequest();
        req.open("POST",this.iframeURL, false, "username", "password"); //use POST to safely send combination
        req.send(null); //here you can pass extra parameters through

        //setiFrame's SRC attribute
        var iFrameWin = document.getElementById(this.iframeID);
        iFrameWin.src = this.iframeURL + "?extraParameters=true";
    }

    //onload, call loadIframe() function
    loadIframe();   
</script>
于 2013-06-20T10:18:35.127 に答える
5

できません。そのような単純な。クロスドメインの制限は、そのようなことができないようにするために非常に具体的に設定されています.

于 2012-08-09T09:46:37.043 に答える