2011-12-17 9 views
0

私は自分のウェブサイトにさまざまなソーシャルネットワークのログイン方法を統合しました。彼らはすべて認証のためにポップアップウィンドウを利用します。ポップアップの代わりにiframe経由でソーシャルネットワークのログインを認証します

代わりにiframeを使用できますか?

私が試すたびに手順が開始されますが、ユーザーはログインしません。正しくリダイレ​​クトされません。

編集 -

私はいくつかのデバッグを行っていると私は問題がロードされているPHPファイル内のjavascript関数であると思います。

ポップアップバージョンでは、これはjavascript関数です。

window.opener.wsl_wordpress_social_login({ 
     'action' : 'wordpress_social_login', 
     'provider' : '<?php echo $provider ?>' 
    }); 

    window.close(); 

このように私のiframe関数で作成しました。

window.parent.document.getElementById('iframe').wsl_wordpress_social_login({ 
     'action' : 'wordpress_social_login', 
     'provider' : '<?php echo $provider ?>' 
    }); 

放火犯は私に告げる私はあなたのサイトのためのOAuthを実装するボタン「facebookでログイン」「Googleとログイン」またはに参照のうえいる集まるこの::

window.parent.document.getElementById("iframe").wsl_wordpress_social_login is not a function 
[Break On This Error] 'provider' : 'Facebook' 

答えて

1

iframe内に結果ウィンドウを配置すると、javascriptを使用して入力したときにユーザーのgoogleまたはfbパスワードを取得できます。私はまったく確信していませんが、これが完了していてもiframeの読み込みページがhttpsになっていても、ユーザー入力をキャプチャしてからサービスプロバイダはそれを自分のサーバーにリダイレクトします。もちろん、ユーザーのパスワードは気にしませんが、ユーザーはどのようにこれを知っていますか?このため、iframeを使用してサービスプロバイダにログインしようとすると、ユーザーはあなたのウェブサイトを信頼してはいけません。

ログインエクスペリエンスをもっときれいにすると思っています(厄介なポップアップはなく、他のサイトへのリダイレクトはありません)。しかし、セキュリティの意味

また、サービスプロバイダ(例えば、googleやfb)は、自分のログインウィンドウが親ウィンドウにならないように(つまり、あなたが尋ねていることを防ぐために)これらの要件がバイパスされるようにサービスプロバイダのコードをハッキングする可能性がありますが、これを行った場合、改ざんされたコードを持つサービスプロバイダにAPI呼び出しを行うことをドメインが禁止する可能性があります。

関連する問題