dav*_*rac 2 api rest oauth-2.0 ruby-on-rails-3
我正在为我的应用程序创建一个JSON API.我想使用rocket_pants作为JSON API和门卫来提供OAuth2支持.
我的问题是,似乎一旦我改变我的控制器以扩展火箭裤控制器,门卫方法就不再可用了.
所以,一旦我将控制器的声明更改为class Api::V1::ApiController < RocketPants::Base,我就会收到此错误:
in `<class:ApiController>': undefined method `doorkeeper_for' for Api::V1::ApiController:Class (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
这可能是有道理的,因为火箭裤无法知道守门员,但我想知道我应该做些什么来让它识别门卫.
小智 6
如果您使用门卫0.4.1或更高版本,您可以将门卫过滤器添加到您的控制器:
class MetalController < ActionController::Metal
include AbstractController::Callbacks # you might want to skip this for rocket_pants based controller
include ActionController::Head
include Doorkeeper::Helpers::Filter
doorkeeper_for :all
def index
self.response_body = { :ok => true }.to_json
end
end
Run Code Online (Sandbox Code Playgroud)
由于rocket_pants已经包含AbstractController::Callbacks你可以跳过它,所以你的控制器看起来像:
class MetalController < RocketPants::Base
include ActionController::Head
include Doorkeeper::Helpers::Filter
version 1
doorkeeper_for :all
end
Run Code Online (Sandbox Code Playgroud)
维基上的这个页面也可能有用:https://github.com/applicake/doorkeeper/wiki/ActionController :::Metal-with -doorkeeper
| 归档时间: |
|
| 查看次数: |
1323 次 |
| 最近记录: |