先名詞解釋一下:
OAuth(開放授權)是一個開放標准,允許用戶讓第三方應用訪問該用戶在某一網站上存儲的私密的資源(如照片,視頻,聯系人列表),而無需將用戶名和密碼提供給第三方應用。
REST,即REST(Representational State Transfer表述性狀態轉移)是一種針對網絡應用的設計和開發方式,可以降低開發的復雜性,提高系統的可伸縮性。
OAUTH 場景說明:
M是一個電子商務網站,類型於京東,提供商品在線購物服務。
W是一個SNS網站,也類型於Weibo。
U是一個普通的購物者,C有在W網注冊用戶。
U想去M網站看上了幾樣東西,打算購買,發現只能注冊用戶才能購買,但是U不想注冊太多帳號;但是U發現M網站上面支持W的帳號直接登錄。點擊了帶有W網站標示的鏈接,跳到了W網站,輸入了帳號信息,返回到M網站上面,然后M網站自動給U登錄(注冊)了。在此過程中M一直不知道U的帳號信息,除M網站認為可以公開的信息,然后U完成了余下的購物流程。
REST場景說明:
M是一個電子商務網站,類型於京東,提供商品在線購物服務。
B是一個移動設備或者其他的電子商務網站(渠道)。
B想為M拓展市場,M也同意,於是M為B向其開放數據API,有些是公開API,有些則需要安全登錄信息。最終合作成功,B開發了各種移動APP,網站及其他應用。
OAUTH和REST的區別:
OAUTH過程中需要U同意后才能M獲得W提示信息。REST場景過程中的角色沒有U,只需要M同意開放權限即可。
附上兩個php的開源項目
OAUTH : http://code.google.com/p/oauth-php/
REST:https://github.com/philsturgeon/codeigniter-restserver