2011-03-15 96 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的通用功能。这样你可以分别授权控制器。

相关问题