2017-07-25 83 views
0

我正在處理的項目需要我根據生成的響應正文向我的應用生成的所有響應添加自定義標頭。這適用於應用程序控制器中的after_action,但我還需要將自定義標頭添加到使用Doorkeeper生成的令牌響應中。我在門衛配置中將base_controller設置爲ApplicationController,但這不會導致我的after_actions被調用。有沒有可能的解決方法?如何將自定義標頭添加到門衛令牌響應

回答

0

原來,它需要一個定義一個自定義Doorkeeper :: TokensController類,並添加一個過濾器。

應用程序/控制器/ 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 

接着一個需要登記在配置/初始化/ doorkeeper.rb

# ... 
use_doorkeeper scope: 'oauth2' do 
    # ... 
    controllers tokens: 'access_tokens' 
    # ... 
end 
# ... 
看門配置該控制器
相關問題