2011-03-15 100 views
0

我正在爲我的Rails應用程序構建一個API,我試圖爲API和應用程序邏輯重用相同的控制器。沒有認證用戶的請求很好,但如果某些操作需要認證,如何實現。我正在使用authlogic,編輯人員需要一些特定的權限,我正在檢查before_filter。如果我使用http基本身份驗證實現API,我如何區分?爲Rails應用程序實現API

回答

1

我認爲有兩個部分的答案。首先,您需要使用authlogic設置http basic auth。這樣做的詳細信息包含在此答案中:Rails: Basic Authentication with Authlogic

然後,您需要區分API調用和控制器中的普通瀏覽器調用。假設你的API是XML或JSON,你可以這樣做:

class ThingsController < ApplicationController 
    before_filter :authorize 

    def authorize 
     if params[:format] == 'json' || params[:format] == 'xml' 
     require_http_auth_user # http basic auth for API access 
     else 
     require_user # normal authlogic authentication 
     end 
    end 
end 
0

它可能是值得分離成兩個單獨的控制器,包括通過mixin的通用功能。這樣你可以分別授權控制器。

相關問題