2014-09-11 76 views
1

我需要扩展Doorkeeper::OAuth::TokenResponse类,因为我想添加一些东西到返回的数据。默认情况下,该类创建了一个回体是这样的:扩展门卫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 
} 

我可以做,没有猴子补丁TokenResponse类?如果没有,有什么我可以做的,以改善我目前的实施(为了更好地与新版本的Doorkeeper等)兼容? 这是我目前的执行:

我确实拥有该功能的测试,所以我会知道,如果升级宝石看门人打破它。

回答

2

是的,你不需要猴子补丁。有几件事你可以尝试。

  1. 将宝石分叉并在叉子上进行更改,同时确保在发生更改时更新叉子。

    1. 转到github和fork the Gatekeeper Gem:https://github.com/doorkeeper-gem/doorkeeper
    2. 如果您为Ruby项目使用Gemfile,请务必指向您的宝石分叉,例如

      gem 'doorkeeper', github: 'USERNAME/doorkeeper' 
      
  2. 如果与自定义字段叉子的变化是通用的,做一个拉请求,但没准这是不行的,因为哈希是一个OAuth令牌响应。