Doorkeeper 集成 Rails 4 个应用程序

doorkeeper integration with Rails 4 application

按照门卫 github 自述文件中的说明(我认为),我得到了 before_action

class ReadingsController < ApplicationController
  before_action :doorkeeper_authorize! # Require access token for all actions
...
end

RubyMine 抱怨 :doorkeeper_authorize! 未在范围内定义。 如果我 运行 无论如何,我得到:

Processing by ReadingsController#index as HTML
Filter chain halted as :doorkeeper_authorize! rendered or redirected
Completed 401 Unauthorized in 48ms (ActiveRecord: 0.0ms)

在控制台上,一个完全空白的结果。当我查看源代码时,它看起来像常规结果页面。

好吧,这是失败,还是这实际上是在告诉我我未经授权?如果是,我为什么要连接重定向以允许某人实际进行身份验证?

a working example I've built a while before 之后,您的代码在一个完全出乎意料的地方失败了:在 Doorkeeper 的初始化程序中,如下所示:

resource_owner_authenticator do
  current_user || begin
    session[:guest_return_url] = request.fullpath
    redirect_to(user_omniauth_authorize_path(:facebook))
  end
end

我不知道 you 在那个块中有什么,但一般来说它应该 return 一个应该被视为 的对象资源所有者。看门人失败了,因为那个街区没有这样做。为了在我的示例中实现此块,我使用了 Devise 的 current_user 帮助器和一个回退 redirect_to 用于用户未通过身份验证(毕竟这是在 before_action 中执行的)。

所以要让 Doorkeeper "let you in" 你需要告诉它 "how to recognize the owner"。那是 Doorkeeper 不处理的身份验证