我正在開發API並考慮使用OAuth(3-legged方法)進行身份驗證和授權。API身份驗證和授權OAuth 3方法:我正確地做對了嗎?
這是基本的想法:
- 爲了使客戶端(移動應用或Web應用程序),使用此REST的API,用戶將在使用身份提供商/服務器,如谷歌被記錄, Facebook的等
基本上3方將在這裏進行交互:
- 移動/ Web應用程序:將上Ë嘗試訪問自己的API
- 的API:包含數據的應用程序來運行該網站
- 身份服務器:這將允許用戶以訪問API登錄該網站
現在,我理解這個過程的方式(假設我是這樣做的)。這將是流程(彙總):
- 用戶將嘗試從API(消費者)訪問數據;
- 消費者發現用戶未登錄;
- 用戶獲取一個頁面(帶有服務提供商按鈕,如使用Google登錄);
- 用戶點擊按鈕,服務提供商返回登錄表單;
- 用戶登錄;
- 服務提供商返回一個請求特定權限的頁面;
- 用戶授予權限;
- 服務提供商向用戶返回訪問令牌;
- 用戶使用訪問令牌再次嘗試請求消費者(API);
- 消費者獲取令牌並根據服務提供者進行驗證;
- 消費者授予用戶訪問權限。
首先
這是正確的過程(在更高層次上),或者我已經完全誤解了整個事情。如果不正確:你可以提供一些調整嗎?
二
這整個過程之後。消費者如何與用戶溝通?我需要在每個請求(在移動應用程序和API之間)傳遞令牌嗎?或者我可以只使用服務提供商的用戶詳細信息來識別用戶?
三
爲什麼說消費者(API)驗證通過對服務器的用戶提供的令牌?這是否已經在OAuth中實現,還是我必須自己做?
第四和最後一個
在實施方面,這將是客戶端(移動應用程序/ Web應用程序)和消費者(API)有什麼區別?
我對此很陌生,我試圖在PHP(API)中實現它。如果您有任何對PHP代碼(示例實現)或外部資源的引用,我將非常感激:-)
謝謝乍得。抱歉耽擱了。我想在執行這個線程之前首先執行這個操作,以確保我明白了。到現在爲止還挺好 :-) – Sthe 2013-03-11 08:38:55