2012-12-05 129 views
0

我迷路了這裏 - 甚至不真的不知道該問什麼問題。允許軌API返回JSON

我建立了一個API,如下所述:http://railscasts.com/episodes/350-rest-api-versioning?view=asciicast

這是對需要登錄一個網站。

我可以通過瀏覽器訪問API,當我登錄,沒有任何問題。這裏是我的路線:

## API 
namespace :api do 
    namespace :v1 do 
    resources :users, :sessions 
    end 
end 

我一直在問要做的就是讓這個外線可以用API密鑰和可選的查詢參數和用戶id

我已經請求JSON試圖捲曲該網站(https)並重定向到註銷,即使使用用戶名和密碼。

我的老闆建議在根URL接受用戶id,apikey而params,可捲曲,將通過從捲曲張貼的參數返回數據的公開形式。

我不知道如何做到這一點,甚至允許在沒有登錄的情況下調用數據。我看着這個其他屏幕演員http://railscasts.com/episodes/353-oauth-with-doorkeeper(這是一個付費版本),但他的互動允許另一個rails應用程序進行交互與他的原始應用程序。

基本上,我應該在哪裏尋找關於如何做到這一點?還有其他建議,或者我可以提供的更多信息來使問題更清楚嗎?

謝謝你的時間。

回答

0

更多RailsCasts!瑞安貝茨你http://railscasts.com/episodes/352-securing-an-api?view=asciicast

所以覆蓋熬下來:

  • 您需要確定調用您的API客戶端需要表明自己的身份,或者他們還需要以某種方式進行身份驗證
  • 你需要確定客戶端(稱爲您的API)的用戶是否需要對您的系統進行身份驗證 - 即是否存在「用戶」?

某些API允許調用者傳遞API密鑰作爲查詢的一部分;其他人需要更復雜的身份驗證過程,通常是OAuth,這有點棘手。

某些API提供用戶特定的信息,在這種情況下,您需要一種方法來確保用戶可以登錄,更改密碼,調出忘記的密碼等等。 RailsCast也是一個很好的例子(或者你可以使用Devise gem,但是如果你主要實現一個API,我不會推薦它 - 不是Devise的強大套裝)。

我猜你知道這一部分,但curl所做的一切都是模擬客戶端將對你的API進行的HTTP請求,並且(使用--include選項)可以顯示有關返回響應的信息 - 頭文件, cookies等等。

谷歌 「軌API認證」 爲多。