2009-12-10 16 views
29

私は、ポップアップでOauthページを読み込み、コールバックを子ウィンドウを閉じて親ウィンドウを再ロードするように、ポップアップでTwitter OAuthを行う方法を知りました。Twitter OAuth from popup

編集:OK iframeが悪いですが、上記を達成するにはどうすればよいですか?posterous.comがこれを実行することに気付きました。私はFB接続と同じフローを実現しようとしています。

答えて

61

...

  1. オープンポップアップ
  2. 認証
  3. のためにTwitterにユーザに送信Twitterはバックmysite.com/authcompletedにユーザーを送信.php、照会文字列に認証パラメーターを指定します。まだここにポップアップがあります。
  4. ポップアップ(mysite.com/authcompleted.html)は、クエリ文字列を読み込み、JavaScriptの

    window.opener.setTwitterAuthData(yourData)

  5. インサイドsetTwitterAuthData、経由オープナーウィンドウにデータを送信します適切なフォームフィールドを設定し、サーバーにデータを送信します。

+0

でpecl oauth dllを見つけることができます。コールバックがmysite.com/authcompletedの場合、どのようにポップアップしますか? PHP? – Owen

+1

@markポップアップをyahooに向けると、ポップアップ内のyahooのリダイレクトがauthcompleted.phpに返されます – morgancodes

+0

ありがとうございます – Owen

5

これは実行しないでください。これをIFrameに読み込むと、ユーザーからのURLが非表示になり、twitter.comでパスワードを入力していることを確認できず、第三者(フィッシング)サイトではないことを確認できなくなります。

+2

私は原則として同意しますが、認証ページは許可していません。このアプリケーションボタンを拒否 - あなたのパスワードを尋ねることはありません。だから、セキュリティの観点からはなぜそれが問題であるべきか、そしてUXの流れを手助けすることはできません。 – MatthewFord

+4

ログインしていない場合は、パスワードを尋ねます。 –

+3

パスワードを尋ねる非ログインページにiframeバスト処理JSがあります(37行目) – MatthewFord