【问题标题】:How to add a custom header to doorkeper token response如何将自定义标头添加到 doorkeper 令牌响应
【发布时间】:2017-07-25 11:11:19
【问题描述】:
我正在处理的项目要求我将基于生成的响应正文的自定义标头添加到我的应用生成的所有响应中。这适用于我的应用程序控制器中的 after_action,但我还需要将自定义标头添加到使用 Doorkeeper 生成的令牌响应中。我在门卫配置中将 base_controller 设置为 ApplicationController,但这并没有导致我的 after_actions 被调用。有一些可能的解决方法吗?
【问题讨论】:
标签:
ruby-on-rails
oauth-2.0
doorkeeper
【解决方案1】:
原来需要定义一个自定义的 Doorkeeper::TokensController 类并向其添加过滤器。
app/controllers/access_tokens_controller.rb:
class AccessTokensController < Doorkeeper::TokensController
include AbstractController::Callbacks
after_action :add_signature_to_response, only: [:create]
def add_signature_to_response
application = strategy.client.application
# ...
# response_based_on_application = ...
# ...
response.headers['custom-header'] = response_based_on_application
end
end
下一个需要在 config/initializers/doorkeeper.rb 中的门禁配置中注册该控制器
# ...
use_doorkeeper scope: 'oauth2' do
# ...
controllers tokens: 'access_tokens'
# ...
end
# ...