- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在设置 Doorkeeper和 OAuth2对于我的一个 Rails 应用程序。我的目标是根据用户的 access_token 允许 api 访问用户,这样只有用户才能看到他们的“user_show”json。到目前为止,我已经在“oauth2/applications”路径上设置并授权了我的开发和生产应用程序。
我的“/config/initializers/doorkeeper.rb”
Doorkeeper.configure do
# Change the ORM that doorkeeper will use.
# Currently supported options are :active_record, :mongoid2, :mongoid3,
# :mongoid4, :mongo_mapper
orm :active_record
# This block will be called to check whether the resource owner is authenticated or not.
resource_owner_authenticator do
# Put your resource owner authentication logic here.
# Example implementation:
User.find_by_id(session[:current_user_id]) || redirect_to('/')
end
end
我的“/api/v1/user/controller.rb”看起来是这样的:
class Api::V1::UserController < Api::ApiController
include ActionController::MimeResponds
before_action :doorkeeper_authorize!
def index
user = User.find(doorkeeper_token.resource_owner_id)
respond_with User.all
end
def show
user = User.find(doorkeeper_token.resource_owner_id)
respond_with user
end
end
我试图访问 OAuth Applications 表以查看正在创建的内容,但我无法在 Rails 控制台中访问它。
提前感谢您的见解!
最佳答案
Doorkeeper 似乎没有找到任何 token 。
确保您正在发送它,无论是从带有 ?access_token=#{token}
的 url 还是 ?bearer_token=#{token}
,要么将此 token 提供给使用 Bearer Authorization 的 header 。
您还需要记住, token 只能关联到一个应用程序,而没有资源所有者。因此,即使使用有效 token ,resource_owner_id
值也可能为 nil
。这取决于您使用的授权流程(客户端凭证流程与资源所有者无关)。参见 https://github.com/doorkeeper-gem/doorkeeper/wiki#flows
对于 OAuth 表,尝试在 Rails 控制台中使用 Doorkeeper::AccessToken.all
。
希望对您有所帮助
关于ruby-on-rails - 未定义方法 `resource_owner_id' 为 nil :NilClass Doorkeeper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28097174/
我正在设置 Doorkeeper和 OAuth2对于我的一个 Rails 应用程序。我的目标是根据用户的 access_token 允许 api 访问用户,这样只有用户才能看到他们的“user_sho
我是一名优秀的程序员,十分优秀!