【问题标题】:authenticate grape api with doorkeeper使用门卫验证葡萄 api
【发布时间】:2014-10-20 18:13:21
【问题描述】:

我目前在我的 Rails 应用程序中配置了 Devise、Doorkeeper 和葡萄。 配置了 Devise 和 Doorkeeper,以便我可以在网站上注册和登录 Devise,并且 Doorkeeper 提供可以创建令牌的 oAuth 端点。

如何向 HttpRequest 添加令牌并用它保护葡萄 API?

编辑: 所以我尝试实现 Tom Hert 建议的 Winebouncer 实现。 我按照https://github.com/antek-drzewiecki/wine_bouncer上的说明进行操作

我已经安装了 gem。 我已经定义了 config/initializers/wine_bouncer.rb 如下。

WineBouncer.configure do |config|
  config.auth_strategy = :default

  config.define_resource_owner do
    User.find(doorkeeper_access_token.resource_owner_id) if doorkeeper_access_token
  end
end

我已在我的基本 api 控制器中将 Winebouncer 注册为葡萄中的中间件。 app\controllers\api\base.rb

module API
  class Base < Grape::API
    mount API::V1::Base
    use ::WineBouncer::OAuth2
  end
end

我在 V1 基础控制器中安装了我的项目控制器 app\controllers\api\v1\base.rb

module API
  module V1
    class Base < Grape::API
      mount API::V1::Projects
    end
  end
end

这是我的项目控制器 app\controllers\api\v1\projects.rb

module API
  module V1
    class Projects < Grape::API
      version 'v1'
      format :json

      resource :projects do
        desc "Return list of projects" , auth: { scopes: [] }
        get do
          Project.all
        end
      end
    end
  end
end

说实话,我还不知道描述中的“, auth: { scopes: [] }” 应该如何工作。以及如何将令牌添加到请求中,但我希望我的请求在没有添加令牌时被阻止。但请求仍在生成 json 数据。

【问题讨论】:

    标签: ruby-on-rails grape doorkeeper


    【解决方案1】:

    我在这里找到了非常有趣的代码:https://github.com/fuCtor/grape-doorkeeper 它似乎仍然保持着。但我认为这很好,只是为了了解那里发生了什么。

    我会推荐这个:https://github.com/antek-drzewiecki/wine_bouncer 如页面所述:

    使用 Doorkeeper 保护您宝贵的 Grape API。 WineBouncer 使用 最少的修改,让魔法发生。

    【讨论】:

    • 我正在查看 winebouncer,但我认为我的 HttpRequest 格式错误。我不断收到错误 500。您知道正确的格式吗?
    • @SanderObdeijn 你能提供更多信息吗?喜欢实现的某些部分以及您得到的确切错误?
    • 我无法让 wine_bouncer 工作。但是葡萄看门人工作得很好。
    【解决方案2】:

    obedeijn,我刚刚注意到您在 stackoverflow 上的问题。 WineBouncer 就像看门人一样工作,它查找带有“Bearer x”的 Authorizations 标头,其中 x 是令牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 2017-02-16
      • 2015-06-19
      • 1970-01-01
      相关资源
      最近更新 更多