2012-08-01 44 views
2

我是iPhone開發的新手,想知道做雙腳oauth的標準方式是什麼。我已經登陸了2腿oauth,因爲這個應用程序基本上是我的web應用程序的另一個接口(如iphone的twitter/facebook應用程序),所以在做了一些研究後,我決定用2腿oauth完成工作對我來說,而不是3腿。專門爲它的iphone應用程序專門設計的雙腿oauth?

我並不完全清楚雙腿oauth是如何工作的,但具體我不清楚的是公鑰/私鑰是如何按用戶(每個iphone)管理的。我相信在每部iPhone上擁有相同的公鑰/私鑰並不是一個好主意。理想情況下,不應該每個iPhone都有不同的私鑰?如果所有的iPhone擁有相同的公鑰+私鑰,那麼對於任何人來說,掌握這些並且從任何地方開始進行任意請求都不是一件容易的事情嗎?另外,我將如何能夠知道哪些用戶正在提出這些請求?對於每個請求發送某種令牌(就像帶有會話信息的cookie)是否是一個好主意?

如果有人能夠更多地瞭解當前的行業標準,以及iphone應用程序如何解決這個問題,那將會很棒。

非常感謝..

回答

1

問題的雙向OAuth本身,是客戶端訪問和密鑰存儲。 Oauth中的祕密密鑰(據我所知)不應該通過HTTP(S)傳輸。這意味着你必須將它存儲在應用程序中,這使得它很可能被反向設計和發現。

我建議使用HTTPS第一,使用一些簡單的像這樣 http://matteomelani.wordpress.com/2011/10/17/authentication-for-mobile-devices/

的Oauth將使其他客戶端應用程序能夠連接/消耗你的Rails應用程序的API,但「密鑰」的問題當你使用移動應用程序來使用你自己的API時就會殺死它。當您從移動應用程序使用Facebook或Twitter或其他Oauth提供程序進行使用時,該密鑰仍在您的後端,以處理/授權令牌/代碼。這也是我迄今爲止的經驗,它並不完全是一個明確的答案,也可能是其他人可以更多地瞭解它。