2013-03-12 80 views
2

我擁有api.example.com的API後端和example.com的前端單頁應用程序。 API基本上是數據庫後端的包裝。如何使用單個頁面應用程序和API後端進行身份驗證?

現在,我想讓單個頁面應用(=客戶端應用)的用戶使用API​​進行身份驗證。爲此,據我瞭解,客戶端(=單頁面應用)將client_id與user_id一起發送到API,然後API發出AccessToken。

但是,在我的單頁應用程序中,我不確定在何處/如何存儲訪問令牌。我正在尋找一個簡單的參考,或者一個好的概念,讓登錄用戶訪問API應用程序。

一個朋友建議我這個流程:

  1. 客戶端顯示登錄輸入(無論是通過電子郵件或用戶名)和密碼,
  2. 的客戶端應用程序發出請求到您的API來獲得未授權的令牌(例如POST/api/v1/auth/new),
  3. 服務器爲應用程序創建令牌並將其發回,
  4. 客戶端應用程序將令牌連同登錄名,密碼和請求籤名一起發送給API(例如POST/api/v1/mobile_authenticate),
  5. API驗證和驗證憑證,
  6. 如果一切正常,應用程序將使用該令牌進一步代表用戶。

有什麼想法?這怎麼可以簡化或改進?

回答

4

我在服務器API中使用API​​密鑰進行權限檢查。 api密鑰的工作流程如下。

  1. 客戶端應用程序顯示用於登錄(電子郵件或用戶名)和 密碼的輸入。
  2. 客戶端應用程序向API發出請求以獲取 api密鑰(例如POST/api/v1/users/validate)。
  3. 客戶端應用程序使用API​​密鑰訪問API。 (如果是http請求,api密鑰可以包含在http頭或查詢字符串中。)

希望它有幫助。

+0

謝謝,看起來乾淨和簡單。我會嘗試。 – poseid 2013-03-12 14:12:01

相關問題