我想圍繞所有這個「以api爲中心」的概念,並以某種方式,由於各種原因(在翻轉SO後顛倒),我無法找到答案我自己的,所以我希望你能幫助我:)創建一個以Api爲中心的應用程序,我自己的疑惑
在這裏,作爲個人項目的一部分,我需要創建一個像社交應用程序網站的東西,我說「like」,因爲它只是一個小項目,沒有任何東西太花哨。
我想到的想法是我創建了一個休息服務,像http://api.domain.com/v1/這樣的資源(創建/刪除/更新/讀取)所需的所有方法。
現在,在創建此服務之後,我需要創建我的網站,例如http://www.domain.com/,並且此網站將與我的api.domain.com進行通信,以進行每項操作。如果新用戶註冊,則將數據發送到api服務器,處理它,返回答案等。
然後,在創建網站後,我打算使用phonegap爲iphone和android創建原生應用程序。這些移動應用程序基本上就像我的網站一樣,連接到api服務器並執行各種操作。
這很簡單,如果沒有授權,所以任何知道api端點的人都可以管理所有的資源,就像你猜測的那樣,我不想要,所以我必須實現某種的授權機制,我不確定要使用什麼。 我在考慮實現OAuth2,以便我的api充當oauth提供者,然後我的網站/移動應用將連接到api,獲得授權,然後完成他們的工作。 這是一個很好的方法,有什麼想法嗎?
接下來,假設我堅持使用oauth並且一切正常,如果我想讓用戶有機會創建自己的應用程序以訪問有關其他用戶/或他們自己數據的信息(基本上我有公共api,爲什麼不利用它),那麼安裝應用程序的用戶需要批准才能訪問他的信息。我知道這是可能的oauth(因爲facebook/twitter /別人這樣做),問題是,我如何區分簡單的用戶創建的應用程序和我自己的應用程序(如網站和移動應用程序)?這種分離是通過在請求permssions時提供各種「範圍」來實現的嗎? 如果不是,我應該使用其他方法?
我對oauth沒有太多的經驗,所以也許有些問題有點不對,希望你能明白我的問題。
如果有幫助,我將使用PHP 5.4與Yii框架,Apache 2(mod ssl available),MySQL。
謝謝:)
是的,但這打破了所有的REST代表,它不是無國籍了,因爲你使用會話來保持用戶登錄。 – Twisted1919 2013-08-29 17:05:29