2013-01-08 35 views
0

當我希望應用程序能夠檢索特定於應用程序的信息而無需用戶登錄,以及何時爲我的API的另一部分提供了OAuth提供程序時,如何保護我的API ?我可以使用客戶端應用程序的OAuth憑據在沒有用戶登錄的情況下點擊API嗎?對oAuth感到困惑,在Rails中創建安全API

我使用門衛創建了一個OAuth提供程序和客戶端,使用 railscasts 353。我可以成功地將用戶身份驗證到我的提供程序應用程序,並代表用戶向我的提供程序API發出請求。

但是,API的一部分與用戶無關,這意味着從API返回的信息不是特定於用戶的,因此用戶應該不必登錄。例如,假設電子商務網站物品和價格存儲在提供商爲多個客戶端。我希望客戶端應用能夠安全地檢索與檢索應用關聯的商品/價格,而無需用戶登錄。因此,如果您訪問example.com,即使用戶通過OAuth登錄,也會顯示這些商品。

當用戶通過OAuth(創建access_token)登錄時,我只能通過OAuth檢索此信息。有沒有一種方法可以在沒有用戶在場的情況下使用OAuth(我一直在嘗試閱讀關於2-OAuth的OAuth,如果這是一個合適的解決方案)?或者我需要使用Api鍵(或Http Basic Auth)來獲取應用程序特定數據?

如果OAuth不是正確的解決方案,因爲我沒有用戶在場,可以/應該使用基於SSL的HTTP基本身份驗證,並使用客戶端網站的OAuth密鑰作爲基本身份驗證用戶名的API密鑰?

回答

0

如果您需要在您的API中驗證您的客戶端應用程序(無需專門用戶),請使用Client Credentials flow