2009-09-07 90 views
12

我有一個演示腳本,可以讓我使用我的應用程序進行授權併發回我的令牌。但這是令人困惑的。Twitter的OAuth系統如何工作?

我一直在我的C​​URL或simpleXML函數中使用用戶名和密碼來授權API調用。我不明白這是如何與oauth相關的。

我得知我將存儲該令牌,但是一旦擁有它,我該如何處理它?我在網上發現的任何東西都很清晰,它使得我是斯蒂芬小販,並且已經知道他們正在談論的事情的九分之九。

幫我從在http地址中使用用戶名和密碼,改爲使用我的oauth令牌。

回答

18

我一直在我的C​​URL或simpleXML函數中使用用戶名和密碼來授權API調用。相比之下,這件事情到底是怎麼回事?

沒有人在他們的正確頭腦中應該信任他們的Twitter密碼到您的Web應用程序,因此您的應用程序無法代表他們訪問Twitter。通過讓用戶選擇性地授予您的應用程序訪問他們的Twitter帳戶而無需您知道密碼,OAuth就是一種解決方法。這樣,密碼仍然是用戶和Twitter之間共享的憑證,並且沒有不受信任的第三方(您)。

這就是廢話。試着大聲說出來,快速,用英國口音。 * scnr *

+1

@Konrad,很好的答案。把水壺放在上面。 – 2009-09-07 21:27:25

+0

這不像oauth更好。任何想要密碼的應用程序現在都可以欺騙大多數普通用戶通過顯示假oauth屏幕來分享它。 – Jacob 2011-01-28 12:37:14

+0

@Jacob:你不幸在那裏。但OAuth原則上不會被破壞(據我所知!)。它不幸在實踐中被破壞,因爲用戶已經被訓練不注意OAuth屏幕,並且只是授權任何東西。如果Twitter想要恢復OAuth的實用性,必須徹底改變他們對第三方應用程序的立場。 – 2011-01-28 13:39:46

2

我發現this site當我第一次嘗試使用oauth時非常有幫助。

+1

有沒有實用的例子? – mrpatg 2009-09-07 21:10:31

0

查看specs,瞭解如何使用OAuth進行身份驗證。如果您瀏覽網站,您還可以找到指引,讓你順利前行。

14

OAuth背後的基本思想是它允許您在不知道密碼的情況下代表某人行事。

比方說,你有一個社交網站(我的例子是Plantworking,無恥的插件)。並且您希望使用Twitter作爲第三方來驗證新帳戶的創建。或者您希望允許您網站上的用戶自動發佈來自您網站的推文。

您作爲Plantworking的運營商首先與Twitter有共同祕密:您註冊此密鑰並存儲它。我不確定,但我會猜想它用於簽署所有請求。

  • 用戶訪問您的網站。
  • 你給他們看一個不錯的鏈接,說「使用你的Twitter帳戶註冊」。
  • 他們點擊它,並在後臺向Twitter發送令牌請求
  • 您收到請求令牌。
  • 您使用此請求令牌將用戶發送至Twitter。
  • Twitter向他們展示了一個不錯的頁面,提供請求的網站名稱以及Plantworking希望獲得許可的內容。
  • 他們點擊他們同意,所以Twitter將該標記標記爲已接受。
  • Twitter將他們引導回工廠工作
  • Plantworking採用請求令牌,並向Twitter發送請求(使用請求令牌)以獲取「訪問令牌」。如果交換成功,Plantworking將獲取訪問令牌,並知道該用戶是合法的。然後,Plantworking可以根據該信息創建帳戶。或者,如果您要求的權限是代表用戶使用資源或與Twitter網站進行交互,您現在可以這樣做。