按照看门人github自述的指示(我想),我得到了尽可能多的before_action。
class ReadingsController < ApplicationController
before_action :doorkeeper_authorize! # Require access token for all actions
...
endRubyMine抱怨: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)和一个完全空白的结果。当我查看查看源时,它看起来就像常规的结果页面。
这是失败还是真的告诉我我是未经授权的?如果是的话,为什么我要连接一个重定向,让某人实际上,很好地验证?
发布于 2015-09-19 20:22:31
遵循我以前做过的一个例子,您的代码在一个完全出乎意料的地方失败了:在这样一个块中Door门将的初始化器中:
resource_owner_authenticator do
current_user || begin
session[:guest_return_url] = request.fullpath
redirect_to(user_omniauth_authorize_path(:facebook))
end
end我不知道您在这个块中有什么,但是通常它应该返回一个对象,这个对象应该作为资源所有者来处理。看门人失败了,因为那个街区没有做到这一点。为了在我的示例中实现这个块,我使用了Devise的current_user助手和一个备用redirect_to,用于用户未经过身份验证(毕竟在before_action中执行)。
所以对于门卫来说,“让你进去”,你需要告诉它“如何认出主人”。这是门卫处理不了的authentication。
https://stackoverflow.com/questions/32672180
复制相似问题