2009-12-10 50 views
29

我想知道如何通過彈出窗口執行twitter OAuth,即在彈出窗口中加載Oauth頁面並使回調關閉子窗口並重新加載父窗口。通過彈出式窗口顯示的Twitter OAuth

編輯:好的iframes不好,但你會如何完成上述,我注意到posterous.com做到了這一點 - 我期待着實現與FB連接相同的流程。

回答

61

否則今天雅虎同樣的事情...

  1. 打開一個彈出
  2. 用戶發送到Twitter的認證
  3. 的Twitter用戶發送回mysite.com/authcompleted .php,在查詢字符串中帶有驗證參數。仍然在這裏彈出。
  4. 彈出(mysite.com/authcompleted.html)讀取查詢串與通過javascript

    window.opener.setTwitterAuthData(yourData)

  5. 內部setTwitterAuthData,將數據發送到所述開啓器窗口,其在您的主窗口中,設置適當的表單域並將數據提交給您的服務器。

+0

上找到pecl oauth dll。當回調爲mysite.com/authcompleted時,您仍然處於彈出窗口中的第3點。 PHP的? – Owen 2010-09-15 08:47:01

+1

@mark你指出彈出到雅虎開始,然後雅虎重定向,仍然在彈出窗口內authcompleted.php – morgancodes 2010-09-15 18:31:46

+0

謝謝,有道理 – Owen 2010-09-15 19:07:26

5

你不應該這樣做。在IFrame中加載它會隱藏用戶的URL,使他們難以確認他們是在twitter.com上輸入密碼而不是第三方(即網絡釣魚)網站。

+2

我原則上同意,但不會在auth頁面只允許有||否認這個應用程序按鈕 - 它不會詢問你的密碼。所以我從安全角度看不出爲什麼它應該成爲問題,同時幫助UX流動。 – MatthewFord 2009-12-10 04:18:34

+4

如果您未登錄,它會要求您輸入密碼。 – 2009-12-10 13:48:04

+3

在沒有登錄的頁面上有iframe破解JS,它會要求您輸入密碼(第37行) – MatthewFord 2009-12-10 14:23:07