2012-09-13 35 views
1

我正在爲我們的產品編寫一個API,我正試圖瞭解一些基本的OAuth如何處理可能影響我們(被創建)api。對使用​​OAuth的現有網站感到困惑,但現在我們向該網站添加一個API

讓我們假設我們的網站目前允許一個人通過Twitter OAuth登錄我們的網站。 在Twitter的回調中,我們的服務器檢索twitter OAuth結果,如果一切正常,則檢查 ,如果此用戶已存在於我們的數據庫中(例如讓我們假設電子郵件是唯一鍵)。如果它們不存在,我們 創建一個新用戶。

當然,我們然後記錄用戶'在',這意味着我們爲他們的瀏覽器創建一個cookie。

到目前爲止 - 這裏沒有新東西。所有正常的東西。

現在..如果我們想通過iPhone或Windows手機使用他們的母語和應用程序使用我們的API來做到這一點,我不確定OAuth結束和我們的API接管點嗎?

例如,讓我們假裝它是一個利用我們API的iPhone應用程序。 iPhone應用程序將嘗試通過他們的Twitter信用認證用戶。好的。但是當它回撥時,它回到了電話中,對吧?不是我們的服務器那麼應用程序需要嘗試創建一個新用戶?那麼iPhone可能會嘗試撥打/api/CreateAccount。但是這意味着 - 任何人都可以調用這個API?網站如何真正知道他們已經通過認證?僅僅是因爲應用程序這樣說?什麼是阻止人創建一個惡意應用程序,並用新的帳戶創作充斥它來調用我們的API?那麼認證API資源呢?表單身份驗證在此處不可用。那麼人們使用SSL上的querystring驗證來進行api調用嗎? iphone如何使用-our-server進行身份驗證?

我很困惑。

任何人都可以請解釋一下當人們有網站和api時人們正在做的差異和常見做法嗎?請使用OAuth作爲身份驗證機制?

回答

0

這個天真的應用程序不會調用CreateAccount,但VerifyAccount與twitter的oauth數據集,以便您的網站和API可以驗證它。該網站將以唯一的用戶ID進行響應,您的iOS應用將使用該用戶ID作爲內部用戶ID。 More info

相關問題