2012-04-10 35 views
2

我試圖在iOS5應用中實現Twitter SSO,並看到Twitter有一些稱爲Reverse Auth的內容。如果這是正確的做法,有人可以闡明一些看法。 Reverse Auth基本上是從iOS5應用程序獲取訪問令牌並將其傳遞給應用程序服務器?iOS5中的反向驗證和Twitter SSO

回答

5

如果您想允許服務器進行API調用,則只需使用Reverse Auth。如果你只是想讓iOS應用程序直接發佈到Twitter,那麼你不需要反向驗證。

對於反向驗證,請參閱:

https://dev.twitter.com/docs/ios/using-reverse-auth

https://github.com/seancook/TWiOS5ReverseAuthExample

一定要先從Twitter請求反向驗證權限,否則示例代碼將無法正常工作。

+0

嗯文檔此回購,爲什麼會需要一個單獨的訪問令牌服務器?一旦客戶端收到驗證令牌,它不能將它傳遞給服務器嗎? – Ying 2012-09-03 21:34:58

+0

這已經有一段時間了,但他們希望區分客戶端和服務器,因爲客戶端API調用總是由用戶直接發起,而服務器API調用可以自主進行(因此,用戶必須明確授予客戶端應用程序許可權執行反向驗證)。單獨的令牌允許用戶撤銷服務器的授權,而不必撤銷客戶端應用程序的授權。 – 2012-09-18 00:53:14

0

要在Twitter上獲取您的訪問令牌,您的請求必須是授權請求或簽名請求,就像您希望在您的應用程序中實現推送通知時的類似於Apple的簽名證書一樣。

在Facebook端這些過程是隱含的,但在Twiteer中,您應該先授權您的請求以獲取用戶訪問令牌。

所以主要思想n條反向驗證是這些.. 你喜歡消費一些關鍵數據(這是應用程序鍵)和消費者密鑰讓您的第一個請求第一次。(https://api.twitter.com/oauth/request_token

然後您會收到你所使用的第二個請求,以獲得訪問令牌的關鍵.. (https://api.twitter.com/oauth/access_token

Twitter正在使用的東西稱爲反向驗證回答這個4個問題:1。 哪個應用程序正在發出請求? 2.請求以哪個用戶的名義發佈? 3.用戶是否授予應用程序授權以代表用戶發佈? 4.請求是否在運輸過程中被第三方篡改?

,並回答了這些問題,他們增加了7件事請求你讓

  • oauth_consumer_key
  • oauth_nonce
  • oauth_signature
  • oauth_signature_method
  • oauth_timestamp
  • 的oauth_token
  • oauth_versio n

許多人試圖自己做這些,但它會需要很多時間從你自己和他們的要求。

所以,跟在GitHub上 https://github.com/seancook/TWReverseAuthExample

也推特的有關反向驗證 https://dev.twitter.com/docs/ios/using-reverse-auth