Ruby on rails 扩展Doorkeeper响应类
我需要扩展Ruby on rails 扩展Doorkeeper响应类,ruby-on-rails,ruby,doorkeeper,Ruby On Rails,Ruby,Doorkeeper,我需要扩展Doorkeeper::OAuth::TokenResponse类,因为我想向返回的数据添加一些内容。默认情况下,该类创建如下返回体: { "access_token": "...", "token_type": "bearer", "expires_in": 7200, "refresh_token": "...", "scope": "some_scope" } 我希望保留该字段并添加一个新字段: { "access_token": "...", "t
Doorkeeper::OAuth::TokenResponse
类,因为我想向返回的数据添加一些内容。默认情况下,该类创建如下返回体:
{
"access_token": "...",
"token_type": "bearer",
"expires_in": 7200,
"refresh_token": "...",
"scope": "some_scope"
}
我希望保留该字段并添加一个新字段:
{
"access_token": "...",
"token_type": "bearer",
"expires_in": 7200,
"refresh_token": "...",
"scope": "some_scope",
"my_custom_field": 47
}
我可以在不使用monkey patchingTokenResponse
class的情况下实现这一点吗?如果没有,我可以做些什么来改进我当前的实现(为了更好地与Doorkeeper等的新版本兼容)?
以下是我当前的实现:
module Doorkeeper
module OAuth
class TokenResponse
old_body = instance_method(:body)
define_method(:body) do
body = old_body.bind(self).()
if self.token.scopes.include? 'some_scope'
body[:my_custom_field] = 47
end
body
end
end
end
end
我确实对该功能进行了测试,所以我会知道升级Doorkeeper gem是否会破坏它。是的,您不需要使用monkey补丁。有几件事你可以试试
gem 'doorkeeper', github: 'USERNAME/doorkeeper'